首页 > 代码库 > [007]为多态基类声明virtual析构函数

[007]为多态基类声明virtual析构函数

引言:

    我们都知道类的一个很明显的特性是多态,比如我们声明一个水果的基类:

class Fruit {public:    Fruit() {};    ~Fruit(){};}

   那么我们根据这个Fruit基类可以派生出以下的子类:

   class Apple:public Fruit{};   class Orange:public Fruit{};

那么问题来了,如果我们想经由一个基类指针去删除一个派生类Apple,且我们有以下的方法

Fruit * foo(){       Apple * p = new Apple();       return p; // 子转父,大丈夫}

接下来似乎顺理成章,我们只需要完成以下的main函数即可了。

int main() {        A *p = foo();        delete p;        return 0;}

 

[007]为多态基类声明virtual析构函数