1、析构函数相关
1.析构函数:函数名与类名相同,前面有~,没有返回值,不能写void,没有参数;只能有一个,不能重载
2.析构函数的作用:主要在对象销毁时释放申请的堆内存,关闭文件,关闭网络连接,关闭数据库连接等;
3.析构函数的执行:(不显式调用,自动执行)1) 作用域到了时自动执行析构函数 2) delete,delete[]时自动执行析构函数
2、构造函数和析构函数的执行顺序
1.构造的顺序:
1) 先构造其它类的对象;按对象的声明顺序构造,先声明的先构造,后声明的后构造
2) 再执行本类构造;先执行初始化列表,再执行本类构造函数内部
2.析构函数执行顺序:
与构造顺序相反;
3、拷贝构造相关
1.拷贝构造函数:函数名与类名相同,没有返回值,不能写void,参数为本类对象的引用,常引用作参数的拷贝构造函数更通用,拷贝构造函数可以重载
2.拷贝构造函数的执行:1).把初始化对象为未初始化对象赋值时,自动调用拷贝构造函数 2).把实参对象拷贝给形参对象时,自动调用拷贝构造函数;
3.拷贝构造函数的作用:用已初始化对象的值为对象初始化
4、友元相关
1.友元:
1) 把一般函数定义为类的友元函数,则此函数能够访问类的所有成员
2) 把某类的成员函数设置为另一个类的友元函数,则此函数能够访问这个类的所有成员
3) 把某类设置另1个类的友元类,则这个类的所有成员函数都能直接访问另一个类的所有成员
2. 友元主要用于突破私有限制,但会破坏类的封装性;
5、内部类相关
1.内部类:在类中定义的类
2.内部类的访问特性:因为内部类作为外部类的一个成员,所以内部类可以直接访问外部类的所有成员,但外部类不能直接访问内部类的所有成员
3.局部类:定义在某函数内或某代码块内的类,有效范围只在局部
6、继承相关
1.继承的格式:
class 子类 : 继承类型 父类
{
子类成员访问权限:
子类数据成员;
子类成员函数;
};
2. C++继承的优势: 1) 最大化提高代码的重用性 2)最快建立框架(做子类时只要关心子类比父类更多的属性和动作)
3. 继承的内容: 子类继承父类的一般数据成员和成员函数,但不能继承父类的private私有成员、不能继承的构造函数、拷贝构造函数、析构函数、=操作符重载,但可以被子类复用;
4. C++支持多继承;
5.子类构造的顺序:
1) 先按父类的继承顺序构造父类
2)按类内对象的声明顺序构造其它类的对象,先声明的先构造,后声明的后构造
3) 再执行本类构造;先执行初始化列表,再执行本类构造函数内部
6.析构函数执行顺序:
与构造顺序相反;
7. 继承类型:public,protected,private;
8. 父类private成员不能被子类继承;
9. public继承时,父类访问权限在子类不变;
10. protected继承时,父类访问权限在子类都变成protected;
11. private继承时,父类访问权限在子类都变成private;
7、抽象类相关
1.抽象类:含有纯虚函数的类;
2.纯虚函数:虚函数的形参列表右边=0;
3.抽象类的特性:只能声明指针或引用,不能创建对象;
4.抽象类的作用:制定框架(接口),只说明有此动作,动作的具体实现由子类完成。
5.抽象类的使用:由子类全部实现父类的所有纯虚函数,才能创建对象
8、菱形继承问题
1.C++多继承的问题:
1)菱形继承问题: 解决办法:1)虚继承 2)使用类域指定使用哪个类的成员;
2)V形继承问题: 1)使用类域指定使用哪个类的成员;标签:函数,继承,子类,小节,C++,析构,父类,构造函数 From: https://blog.csdn.net/Echo_HY/article/details/141140006