Advertisement

定义基类BaseClass,并派生出派生类DerivedClass;在BaseClass中声明虚析构函数;在主函数中将动态分配的Derived对象地址赋给一个Base指针

阅读量:

题目:

编写程序时,首先定义一个基类BaseClass,并由此派生出DerivedClass类。在BaseClass中声明虚析构函数,随后在主函数中将动态分配的Derived类对象的地址赋值给一个BaseClass类型的指针,之后通过该指针释放对象所占用的内存空间,观察程序执行时的行为。接下来,将BaseClass中的析构函数改为非虚函数,再次运行程序并观察此时程序的执行过程。

非虚析构函数

复制代码
    #include <iostream>
    
    using namespace std;
    
    class BaseClass{
    public:
    BaseClass(){cout<<"construct BaseClass"<<endl;}
     ~BaseClass(){ cout<<"destruct BaseClass"<<endl;}
    };
    
    class Derived:public BaseClass{
    public:
    Derived(){        cout<<"construct DerivedClass"<<endl;
    }
     ~Derived(){cout<<"destruct DerivedClass"<<endl;}
    };

全部评论 (0)

还没有任何评论哟~