C++学习Day3

struct 和 class

和c#里不一样,默认public ,相当于 c#public类型的class,c#里struct是值类型
class则默认private

源文件中的函数调用

Point::getX() 代表作用域 Point下的成员函数getX();不同源文件中的类中调用其他类的函数时添加#include<对应的.h>就好了
{

}

构造函数

类名(){}
没有返回值,但是可以有参数,可以重载,程序会在调用类的对象创建时候自动调用,且只会调用一次

析构函数

~类名(){}
没有返回值,不可以有参数,不可以重载,程序会在调用类的对象销毁时候自动调用,且只会调用一次
无参构造函数使用时不要加括号,否则会被当成函数声明,Person p1;//无参调用构造

初始化列表初始化属性

class Person{
Person ():a(10),b(20)
int a;
int b
}
class Person{
Person (int a1,int b1):a(a1),b(b1)
int a;
int b
}

this的使用

this-> 和c#里this.的意义一致

友元

就是c#里全局变量的意思
需要在头文件.h中的这个类的第一行写需要另一个类的友元类或者函数声明,来调用声明位置这个类的私有变量(private属性)
声明示例:
class 需要访问私有属性的类
{
friend 另一个类或者函数;//第一行
}

加号运算符重载

class Person
{
public:
Person operator+(Person &p)
{
里面写重载的内容
}}

继承

  • 公共继承:可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问
    class 子类:public 父类 子类也称为派生类,父类也称为基类
    {}
  • 保护继承 protected 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问
  • 私有继承 pricate 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问. 私有继承之后,子类里的所有变量保护级别都变成private级别,子类的子类访问不到内部的全部内容
    父类中私有内容,子类访问不到
    继承中的构造和析构的顺序如下:
    先构造父类,再构造子类,先析构子类,后析构父类

函数模板

语法:
template 可以用template,都用class指定没错
函数声明或定义
类似参数变为泛型的函数,但是调用类作为t的类型时候需要具体化
例子:
template
void myswap(T&a,T&b)
{
T temp=a ;
a=b;
b=temp;
}
具体化:
template<>void myswap(Person &a,Person &b)
{
a.name=b.name ;
}

类模板 类模板只能显示指定类型,没法自动类型推导

class Person
{
public:
Person(Name name,Age age)
{
this->m_name=name;
this->m_age=age;
}
Name m_name;
Age m_age;
};
//调用
Person<string,int> p1("孙悟空",999)

vector 容器

vector v;
v.push_back(10);"插入数据10"
如果是往两头加数据,用deque更快

stack 容器

先进后出, 不能遍历 .size返回元素个数,判断空empty

posted @   你的代码能改变世界吗  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示