我已经阅读了您的一个答案(“空”构造函数或析构函数会与生成的构造函数做同样的事情吗?)。您写道:“假设 C 类型的对象是在 .cpp 文件中 A 的构造函数的定义中创建的,该文件还包含 struct C 的定义。现在,如果您使用 struct A 并要求销毁 A 对象,编译器将提供析构函数的隐式定义,就像上面的情况一样。该析构函数还将隐式调用 auto_ptr 对象的析构函数。这将删除它持有的指向 C 对象的指针 - 不知道C 的定义!出现在 .cpp 文件中,其中定义了 struct A 的构造函数”。你能为我解释两件事吗:1.为什么A的析构函数应该知道C的定义?2. 添加A的空析构函数对定位有什么帮助?谢谢