条款7【为多态基类声明virtual析构函数】
1.如果类不是用作基类或者具备多态性,则不该声明virtual析构函数
2.多态的基类需要声明一个virtual析构函数。如果基类析不加vritual,则析构不了子类对象
class base {
public:
base(){ cout << "base class constructor" << endl; }
~base(){ cout << "base class destructor" << endl; } // virtual ~base()
};
class derived :public base {
public:
derived(){ cout << "derived class constructor" << endl; }
~derived(){ cout << "derived class destructor" << endl; }
};
int main() {
base *ptr = new derived();
delete ptr;
return 0;
}
//base class constructor
//derived class constructor
//base class destructor