【发布时间】:2011-04-19 16:02:11
【问题描述】:
考虑:
struct device{
virtual void switchon() = 0 {}
};
int main()
{
}
我写了类似下面的代码,但是报错了:
函数定义上的纯说明符 编译因 -Wfatal-errors。
当我问他时,他向我展示了标准中的以下引用:
在类中声明的虚函数 应被定义或声明为纯的 (10.4) 在该类别中,或两者兼有;但不是 需要诊断 (3.2)。
我似乎无法理解它的含义,而且我认为这在某种程度上是不相关的。
PS:如果这不是相关的引用,请引导我找到正确的引用,以便我有更好的反驳。
【问题讨论】:
-
嗯。证实了我的怀疑。 Wiki 链接指向标准 C++ 98 - 10.4/2。这里提到了“[注意:函数声明不能同时提供纯说明符和定义——尾注]”,这说明了这种情况。所以这不是我同事给我看的引述
-
@Nivhus :是的
10.4/2是正确/相关的报价。 -
标准中引用的意思是,未能定义非纯虚拟的虚函数是错误的。不同但相关的要求。
标签: c++