C++ 小节3

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)使用类域指定使用哪个类的成员;
  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值