在C++ Faq lite中我没有看到关于这个问题的答案:
如何定义一个基类,使得每个继承它的类都必须定义一个析构函数?
我尝试运行了这个程序
struct VDtor { virtual ~VDtor()=0; };
struct Test:VDtor { virtual ~Test(){} };
int main() { delete new Test; return 0; }
http://codepad.org/wFcE71w3 出现了错误
In function `Test::~Test()':
t.cpp:(.gnu.linkonce.t._ZN4TestD0Ev+0x1e): undefined reference to `VDtor::~VDtor()'
In function `Test::~Test()':
t.cpp:(.gnu.linkonce.t._ZN4TestD1Ev+0x1e): undefined reference to `VDtor::~VDtor()'
那么,这是可能的吗?
return 0;
。 - Konrad Rudolphmain
函数的返回类型必须是int
,而且(只有在C++中)不能省略,但是(只有在C++中)你不需要显式地写出return 0;
。 - Konrad Rudolph