2-C++语言
概述
带有函数的结构体称为类
编译器默认传入this指针
当前类名称:要继承类名称
Teacher(int Age, int Sex, int Level):Person(Age, Sex) {
this->Level = Level;
}
访问控制
在struct中所有成员默认的属性是public,而在class中则相反
父类的私有成员是可以被继承的,但是也不能直接访问
引用
int& ref = x;
引用必须赋初始值,且只能指向一个变量,从一而终
对引用赋值,是对其指向的变量赋值,而不是修改引用本身的值
多态
虚函数的作用:函数传入的对象是子类就调用子类的,是父类就调用父类的
多态是指让父类的指针有多种形态
没有方法体的函数我们称之为纯虚函数
含有纯虚函数的类被称之为抽象类,不能创建对象,定义一种标准
class Base {
public:
virtual int Plus() = 0;
}
虚表、重载与模板
有虚函数时对象的数据宽度就会比其原来多出4个字节,这四个字节我们称之为虚表
运算符重载:...... operator
template<class 形参名, class 形参名, ...>
返回类型 函数名(参数列表) {
函数体;
}
对象拷贝
第二个对象传入的参数是第一对象,这就是默认拷贝析构函数,其本质是内存复制
拷贝构造函数只是会拷贝当前指针成员的值,并不会拷贝指针成员指向的内容, 这种拷贝方式称之为浅拷贝。这种情况下,还将指针指向的内存地址复制过来,并自动申请一块新的内存提供,这种方式称之为深拷贝
如果不需要深拷贝,就不要自己添加拷贝构造函数,因为你添加了拷贝构造函数,那么编译器将不再提供,所有的事情都需要由新添加的函数自己来处理
声明
内部类:两者之间不存在什么特殊关系,也无法访问对方的私有成员
用static声明的全局变量,只有当前函数能访问
出现在类体外的函数定义不能指定static