gpt4 book ai didi

c++ - C++中的纯虚析构函数

转载 作者:IT老高 更新时间:2023-10-28 11:30:34 26 4
gpt4 key购买 nike

写错了吗:

class A {
public:
virtual ~A() = 0;
};

对于抽象基类?

至少在 MSVC 中编译...它会在运行时崩溃吗?

最佳答案

是的。你还需要实现析构函数:

class A {
public:
virtual ~A() = 0;
};

inline A::~A() { }

应该够了。

如果你从 A 派生出任何东西,然后尝试删除或销毁它,A 的析构函数最终会被调用。由于它是纯粹的并且没有实现,因此会出现未定义的行为。在一个流行的平台上,这将调用 purecall 处理程序并崩溃。

编辑:修正声明更符合,编译 http://www.comeaucomputing.com/tryitout/

关于c++ - C++中的纯虚析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com