以下代码将导致C4624。但是你可以看到 D 不是 B 的子类。为什么仍然得到这个警告?谢谢!
class B {
// Uncomment the following line to resolve.
// public:
~B();
};
class D {B b;}; // C4624 B's destructor not public
有关警告的更多详细信息:
C4624:“派生类”:无法生成析构函数,因为基类析构函数不可访问
析构函数在基类中不可访问,因此不会为派生类生成。任何在堆栈上创建此类型对象的尝试都将导致编译器错误。