77问答网
所有问题
c++中析构函数为什么可以为虚函数
如题所述
举报该问题
推荐答案 2018-06-09
å¨ç±»ä¸å¦æèªå·±æ²¡æå建ææå½æ°ï¼é£ä¹c++ä¼èªå¨çæä¸ä¸ªææå½æ°ï¼ä¸è¿è¯¥ææå½æ°ä¸èµ·ä½ç¨ç¸å½äºèå½æ°äº
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/GIW3YWpW38YW3NG3qvN.html
相似回答
c++ 中
为什么
要将
析构函数
设置
成虚函数
?
答:
这句delete, 如果你基类
的析构函数
不
是虚
的的话, 就会造成内存泄露, 具体表现为派生类的内存被释放了而基类没有.
为什么构
造函数不
能
声明
为虚函数
,
析构函数可以
答:
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数
。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。
构造、
析构函数
可否为virtual
答:
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数
。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:解释一:所谓虚函数就是多态情况下只执行一个。而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象。如果构造函数设为虚函...
C++中为什么
将
析构函数
生命
为虚函数
?尤其是在继承机制中
答:
因为子类的成员需要先于父类被摧毁.
虚函数能够
确保在子类
析构函数
调用前父类析构函数不会被意外调用.
析构函数为什么是虚函数
?
答:
析构函数可以为虚函数
,也可以不为虚函数。(更多的时候不为虚函数)。设计析构函数为虚函数,主要是考虑到继承。析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了...
什么函数
不
能
声明
为虚函数
?
答:
inline, static, constructor ,template 函数都不
能 为虚函数
,而
析构函数可以
。
为什么
呢:inline: 编译器替换; 而虚函数是为了解决运行期间绑定。static:class 成员; 编译期间就给class了。constructor: 构造函数表示要生成一个class的object;假设是virtual的,那就说不知道这个实例化derived还是based...
什么情况下,类
的析构函数
应该声明
为虚函数
?
为什么
?
答:
虚析构函数是为了解决这样的一个问题:基类的指针指向派生类对象,并用基类的指针删除派生类对象。如果某个类不包含
虚函数
,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使
析构函数为虚
一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可...
大家正在搜
构造函数和析构函数都可以是虚函数
为什么基类的析构函数是虚函数
析构函数可以声明为虚函数
为什么析构函数要定义成虚函数
构造函数为什么不能为虚函数
析构函数可以是虚函数
基类析构函数可以是非虚函数
析构函数中调用虚函数
析构函数中调用虚函数采用静态联编
相关问题
为什么构造函数不能声明为虚函数,析构函数可以
c++ 为什么析构函数必须声明为虚函数
c++中的虚拟析构函数有什么作用?
什么情况下,类的析构函数应该声明为虚函数?为什么?
C++中,为什么需要定义析构函数为虚函数
c++中 析构函数中可以调用虚函数么
C++中,为什么需要定义析构函数为虚函数
c++ 中 为什么要将析构函数设置成虚函数?