我想知道定义一个没有虚析构函数的基类,并用虚析构函数定义继承类是否正确?如果我这样做,实际会发生什么?
最佳答案
如果您删除 p
,其中 p
是 X*
类型,但实际上指向一个 Y
,它是从 X
派生,除非 X
有一个 virtual
析构函数,否则你有未定义的行为。如果 Y
的析构函数是 virtual
但 X
的析构函数不是,它什么也不会改变。
关于c++ - 如果在派生类中定义了虚拟析构函数,而不是层次结构的顶部怎么办? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534500/