第十三周阅读项目(2):虚析构函数

来源:互联网 发布:人工智能伏羲觉醒豆瓣 编辑:程序博客网 时间:2024/05/18 00:19

代码:

#include <iostream>using namespace std;class BASE{private:    char c;public:    BASE(char n):c(n) {}    virtual ~BASE()    {        cout<<c;    }};class DERIVED:public BASE{private:    char c;public:    DERIVED(char n):BASE(n+1),c(n) {}    ~DERIVED()    {        cout<<c;    }};int main(){    DERIVED d('X');    return 0;}


运行结果:

 

学习心得:

如果将基类的析构函数声明为虚函数时,由该基类所派生的所有派生类的析构函数也都自动成为虚函数,即使基类和派生类析构函数的名字不同。当基类的析构函数为虚函数时,无论指针指的是同一类组中的哪一个类对象,系统都会采用动态关联,调用相关类的析构函数,对该对象进行清理工作。

0 0
原创粉丝点击