现在的位置: 首页 > 综合 > 正文

C++虚析构函数

2014年10月02日 ⁄ 综合 ⁄ 共 497字 ⁄ 字号 评论关闭
C++虚析构函数

析构函数可以声明为虚函数。

delete 基类指针;

程序会根据基类指针指向的对象的类型确定要调用的析构函数

基类的析构函数为虚函数,所有派生类的析构函数都是虚函数

构造函数不得是虚函数

如果要操作具有继承关系的类的动态对象,最好使用虚析构函数。特别是在析构函数需要完成一些有意义的操作,比如释放内存
析构函数还可以是纯虚的。

#include <iostream>
using namespace std;


// 对于一个没有任何接口的类,如果想要将它定义成抽象类,只能将虚析构函数声明为纯虚的
// 通常情况下在基类中纯虚函数不需要实现
// 例外是纯虚析构函数要给出实现。(给出一个空的实现即可)
class Base
{
public:
    virtual ~Base() = 0
    {

    }
};

class Derived : public Base
{

};

int main(void)
{
    //  Base b; //error, 抽象类
    Derived d;
    return 0;
}

// 对于一个没有任何接口的类,如果想要将它定义成抽象类,只能将虚析构函数声明为纯虚的
// 通常情况下在基类中纯虚函数不需要实现
// 例外是纯虚析构函数要给出实现。(给出一个空的实现即可)。

抱歉!评论已关闭.