构造和析构的调用

1.不管基类析构函数加不加virtual,只要是声明的是基类的指针,即使实际指向的实例是派生类的,也不会调用派生类的析构方法。
2.不管基类析构函数加不加virtual,只要是声明的是派生类的指针,并且实际指向的实例是派生类的,会先调用派生类的析构方法,然后级联调用父类的析构方法。

3.析构函数做最后的“清场工作”,
一般当派生类对象从内存中撤销时,先调用派生类的析构函数,再调用基类析构函数;
但,若用new建立了临时对象
&1. B *pb = new B; delete pb; 也还是会输出"delete B" “delete A”
&2. A *pa = new B(); 基类指针指向临时对象 ,在用delete撤销对象是,系统会只执行基类的析构函数,而不执行派生类的析构函数。
&3. 如果将基类的析构函数声明为虚函数,由基类所有派生类的析构函数自动成为虚函数(即使析构函数名不同)。 将析构函数加上vitual,实现具体对象的
动态关联,在运行阶段,先调用派生类析构,在调用基类析构

4.派生类构造函数的调用次序是: 基类构造函数,成员列表构造函数,派生类自己的构造函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值