【发布时间】:2013-07-28 12:24:27
【问题描述】:
我已阅读您的一个答案 (Will an 'empty' constructor or destructor do the same thing as the generated one?)。你写了: “假设 C 类型的对象是在 .cpp 文件中 A 的构造函数的定义中创建的,该文件还包含 struct C 的定义。现在,如果您使用 struct A,并要求销毁 A 对象,编译器将提供析构函数的隐式定义,就像上面的情况一样。该析构函数还将隐式调用 auto_ptr 对象的析构函数。这将删除它持有的指向 C 对象的指针 - 不知道 C 的定义! 出现在 .cpp 文件中,其中定义了 struct A 的构造函数”。你能为我解释两件事吗: 1.为什么A的析构函数要知道C的定义? 2.添加A的空析构函数对定位有什么帮助? 谢谢
【问题讨论】:
标签: c++ explicit-destructor-call