[c/c++]析构函数virtual相关

来源:互联网 发布:春老才觉短 别后方知远 编辑:程序博客网 时间:2024/05/16 09:08
 基类的构造函数、析构函数、赋值函数都不能被派生类继承。

#include <iostream>
using namespace std;

class A
{
public:
    A()
{cout<<"A constructor"<<endl;}
    
~A(){cout<<"A desstructor"<<endl;}
}
;

class B : public A
{
public:
    B()
{cout<<"B constructor"<<endl;}
    
~B(){cout<<"B desstructor"<<endl;}
}
;

int main(){
    A 
*pa = new B;
    delete pa;
    
return 0;
}

//输出
//A constructor
//B constructor
//A desstructor

父类的析构函数没有声明为virtual,故子类的析构函数不会被调用到
若~A为virtual的,则~B自动为virtual
原创粉丝点击