如果定义虚拟析构函数,是否会导致UB?例如:
struct A{ virtual ~A(){ } };
struct B : A { };
A *a = new B;
int main()
{
delete a; //UB?
}
“如果定义虚拟析构函数,是否会导致UB?”
不行,因为声明了析构函数就好了virtual
。加紧vtable
并~B
先呼叫将由处理delete
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句