如下例:
class Base
{
public:
virtual foo() = 0;
protected:
virtual ~Base(){};
};
class Derived
{
public:
Derived(string str) : _str(str){}
virtual foo(){ //.. }
protected:
string _str;
}
{
public:
virtual foo() = 0;
protected:
virtual ~Base(){};
};
class Derived
{
public:
Derived(string str) : _str(str){}
virtual foo(){ //.. }
protected:
string _str;
}
这时,如果有
Base *p = new Derived("some string");
//...
delete p;
这时,不能调用析构函数