析构函数 没定义函数体, 当采用不同使用方式, 编译结果不一样:
方式1 : CTest *Test3 = new CTest(); 链接成功, 此时如果加上 delete Test3 ; 会报 链接错误
方式2: CTest Test4; 会报 链接错误。
如果加上析构函数函数体测试, 对于方式1 ,当不调用delete, 离开作用域并没有调用构造函数。 方式2 离开作用域就会调用析构函数
链接错误:
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CTest::~CTest(void)" (??1CTest@@QAE@XZ),该符号在函数 "public: void * __thiscall CTest::`scalar deleting destructor'(unsigned int)" (??_GCTest@@QAEPAXI@Z) 中被引用
1>D:\测试程序\test\Debug\test.exe : fatal error LNK1120: 1 个无法解析的外部命令