如何声明一个也是 const 的纯虚成员函数?我可以这样做吗?
virtual void print() = 0 const;
还是这样?
virtual const void print() = 0;
如何声明一个也是 const 的纯虚成员函数?我可以这样做吗?
virtual void print() = 0 const;
还是这样?
virtual const void print() = 0;
只有virtual void print() const = 0形式是可以接受的。看看 C++03 §9/2 中的语法规范:
member-declarator :
声明符 纯说明符opt
声明符 常量初始化器opt
标识符opt:常量表达式纯说明符:
= 0
这const是声明符的一部分——它是直接声明符中的cv-qualifier-seq选项(第 8/4 节):
declarator :
直接声明
符 ptr-operator *declarator*direct-declarator :
declarator-id
direct-declarator(parameter-declaration-clause)cv-qualifier-seq opt exception-specification opt
direct-declarator[constant-expression opt]
(declarator)
因此,= 0必须在 之后const。
当然可以。正确的语法是:
virtual void print() const = 0;
尝试这个:-
virtual void print() const = 0;