构造函数和析构函数能不能被继承

Posted 蒲公英110

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数和析构函数能不能被继承相关的知识,希望对你有一定的参考价值。

1、构造函数和析构函数不能被继承。构造函数和析构函数是用来处理对象的创建和析构的,它们只知道对在它们的特殊层次的对象做什么。所以,在整个层次中的所有的构造函数和析构函数都必须被调用而不能被继承。
2、子类的构造函数会显示的调用父类的构造函数或隐式的调用父类的默认的构造函数进行父类部分的初始化。
3、析构函数也一样。它们都是每个类都有的东西,如果能被继承,那就没有办法初始化了。

不能重载析构函数,只能声明为虚函数,为了多态发生时能够完全析构
只有构造函数才能重载,用于多种方式构造对象

如果通过基类指针动态构造公有派生类对象,再通过基类指针来动态释放该对象就会发生这个问题,原因和过程很多教科书上都有,此时,基类的析构函数就要定义为virtual 型的了

重载:重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
 

以上是关于构造函数和析构函数能不能被继承的主要内容,如果未能解决你的问题,请参考以下文章

C语言里面构造函数和析构函数的运用办法

c++中,虚函数能不能被继承

php构造函数的PHP 5 构造函数和析构函数

C++学习摘要之二:构造函数和析构函数

能直接调用析构函数,不能直接调用构造函数

[剑指offer]面试题48:不能被继承的类