C ++纯虚拟const成员函数
我怎样才能声明一个纯粹的虚拟成员函数,也是常量? 我可以这样做吗?
virtual void print() = 0 const;
或者像这样?
virtual const void print() = 0;
要声明常量成员函数,请将const关键字放在参数列表的右括号之后。
所以它应该是:
virtual void print() const = 0;
只有virtual void print() const = 0
forms是可以接受的。 看看C ++ 03§9/ 2中的语法规范:
成员声明者 :
声明器纯说明符select
声明者constant-initializer opt
标识符opt:
常量expression式纯符:
= 0
const
是声明 const
的一部分 – 它是直接声明符(§8/ 4)中的cv-qualifier-seq opt :
声明者 :
直接说明符
ptr-operator *声明符 *直接声明者 :
声明符-ID
直接声明器(
parameter-declaration-clause)
cv-qualifier-seq optexception规范select
直接声明者[
constant-expression opt]
(
声明者)
因此, = 0
必须在const
。
当然可以。 正确的语法是:
virtual void print() const = 0;
尝试这个:-
virtual void print() const = 0;