我们可以通过指向其基类之一的指针执行删除对象吗?

圣安东尼奥

如果定义虚拟析构函数,是否会导致UB?例如:

struct A{ virtual ~A(){ } };

struct B : A { };

A *a = new B;


int main()
{
    delete a; //UB?
}

大肠杆菌

一切都在流动

“如果定义虚拟析构函数,是否会导致UB?”

不行,因为声明了析构函数就好了virtual加紧vtable~B呼叫将由处理delete

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们可以在不知道其真实类型的情况下将基类指针转换为派生类指针吗?

我们可以创建指向基础对象的派生类引用吗?

我们可以在类声明中声明一个类类型的指针吗?

通过指向其成员之一的指针确定对象指针的最佳方法是什么?

我们可以编写一个函数来返回指向函数模板的函数指针吗?

我们可以重载类对象的行为吗

我们可以通过 findOneAndUpdate 获取我们正在处理的对象吗?

我们可以返回非指向指针函数的值吗

当我有一个指向其基类的指针时,该对象是否克隆?

通过基类的指针,我们无法访问派生类的特定成员

执行:通过其指针删除对象

如果resp是指向响应对象的指针,为什么我们不必使用resp *来访问其值?

我们可以对变量之一进行 @Column 和 @OneToOne 注释吗?

我们可以通过仅更改if条件在执行else条件之后返回并执行if条件吗?

我可以使用指向其析构函数中被破坏对象的指针吗?

我们可以快速从基类访问重写的类函数吗?

我们可以在另一个类的构造函数的帮助下初始化对象吗?

我们可以创建一个不满足用于创建对象的类吗?

我们可以通过活动销毁来持久化一个大的状态对象吗?

我们不能在 C++ 中不使用指向对象的指针来创建节点吗?

在纯 C 中,我们可以使用指向 char 的指针而不是指向 void 的指针来实现泛型函数吗?

电子:我们可以使用其唯一ID访问BrowserWindow吗?

我们可以在iOS中通过文本字段执行代码吗?

如果我在另一个类中使用一个类的对象,是否可以使用指向第一类对象的指针来指向其成员?

我们可以在C#的基类中捕获子类方法的异常吗?

我们可以减去NULL指针吗?

我们可以在 printf 中传递指针吗?

我们有div的相同类的列表。我想删除具有特殊类元素的那些之一

我们可以通过编程方式删除“反应选择”中的选定选项吗?