在C ++ 98中,空指针由文字0
(或实际上是值为零的任何常量表达式)表示。在C ++ 11中,我们更喜欢nullptr
。但这不适用于纯虚函数:
struct X
{
virtual void foo() = nullptr;
};
为什么这不起作用?完全没有道理吗?这仅仅是疏忽吗?会解决吗?
因为语法说的0
不是表达式或其他一些非终结符nullptr
。
对于所有的时间0
都一直有效。Even0L
的格式不正确,因为它与语法不匹配。
编辑
铛允许= 0x0
,= 0b0
和= 00
(2013年12月31日)。那是不正确的,当然应该在编译器中修复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句