如何声明一个也是 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;