时间:2021-05-19
和构造函数类似,析构函数也是不能被继承的。
创建派生类对象时,构造函数的调用顺序和继承顺序相同,先执行基类构造函数,然后再执行派生类的构造函数。但是对于析构函数,调用顺序恰好相反,即先执行派生类的析构函数,然后再执行基类的析构函数。
请看下面的例子:
运行结果:
从运行结果可以很明显地看出来,构造函数和析构函数的执行顺序是相反的。
需要注意的是,一个类只能有一个析构函数,调用时不会出现二义性,所以析构函数不需要显式地调用。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、原因: 在实现多态时,当用基类指针操作派生类,在析构时候防止只析构基类而不析构派生类。2、例子: (1)、 #include usingname
继承和动态内存分配假设基类使用了动态内存分配,而且定义了析构函数、复制构造函数和赋值函数,但是在派生类中没有使用动态内存分配,那么在派生类中不需要显示定义析构函
继承 在现有类(称为基类、父类)上建立新类(称为派生类、子类)的处理过程为继承。派生类能自动获取基类(除了构造函数和析构函数外的所有成员),可以在派生类中添加
C++基类与派生类的转换在公用继承、私有继承和保护继承中,只有公用继承能较好地保留基类的特征,它保留了除构造函数和析构函数以外的基类所有成员,基类的公用或保护成
C++多层派生时的构造函数一个类不仅可以派生出一个派生类,派生类还可以继续派生,形成派生的层次结构。在上面叙述的基础上,不难写出在多级派生情况下派生类的构造函数