【发布时间】:2020-01-25 13:49:59
【问题描述】:
我正在尝试声明纯虚拟析构函数, 在VS2019中我是这样写的:
virtual ~A() = 0 {};
这很好,但在 Clion 中不接受 我收到以下消息:
函数定义上的纯说明符 virtual ~A() = 0{ };
它迫使我为该函数编写不同的实现(并不是说它很麻烦,但我想知道为什么会这样)
【问题讨论】:
-
我刚要编辑 :D
-
纯说明符和定义同时是无效的。填写错误报告可能是个好主意。
-
在 VS2019 中我是这样写的:
virtual ~A() = 0 {};很好这可能是 MS 的原生扩展(而不是我认识的第一个扩展)。跨度> -
在声明中
virtual ~A() = 0;并在声明inline A::~A() = default;之后提供一个实现(因为是析构函数,还是需要提供)。如果实现在 .cpp 文件中,请省略inline。如果析构函数需要做除default以外的事情,请根据需要提供析构函数行为。
标签: c++ visual-c++ clion virtual-functions pure-virtual