C ++纯虚拟const成员函数

我怎样才能声明一个纯粹的虚拟成员函数,也是常量? 我可以这样做吗?

virtual void print() = 0 const; 

或者像这样?

 virtual const void print() = 0; 

要声明常量成员函数,请将const关键字放在参数列表的右括号之后。

所以它应该是:

 virtual void print() const = 0; 

只有virtual void print() const = 0forms是可以接受的。 看看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;