gpt4 book ai didi

c++ - 我是否必须在类主体之外定义纯虚拟析构函数?

转载 作者:太空狗 更新时间:2023-10-29 19:59:34 25 4
gpt4 key购买 nike

我试过的两个编译器都接受这种语法,但我在某处读到纯虚拟析构函数定义应该始终在类之外。我的编译代码:

class AbstractBase
{
public:
virtual ~AbstractBase() = 0
{}

virtual void foo()
{
...
}
};

最佳答案

根据标准,您不能在类主体中定义纯虚函数。
不过,一些编译器确实支持此功能作为扩展。请注意,使用此扩展将使您的代码无法跨不同的编译器移植。

引用:

C++03 10.4 第 2 段:

[Note: a function declaration cannot provide both a pure-specifier and a definition —end note] [Example:

struct C 
{
virtual void f() = 0 { }; // ill-formed
};

—end example]

关于c++ - 我是否必须在类主体之外定义纯虚拟析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12577364/

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