声明静态成员函数const或virtual

时间:2014-08-19 15:50:12

标签: c++

为什么不能将静态成员函数声明为const?

我知道静态函数不会对任何特定的类实例起作用。这意味着此类函数没有此指针(隐式地作为隐藏参数传递)到任何特定实例。但我不明白为什么在声明为const时会出现编译器错误,因为它没有更改任何特定实例。

其次,为什么不能将静态成员函数声明为虚拟?

需要澄清一下。

1 个答案:

答案 0 :(得分:8)

  

为什么在声明为const

时会出现编译器错误

const表示“this是指向const对象的指针”。由于没有this,因此const无需修改。

  

为什么不能将静态成员函数声明为虚拟

virtual表示“根据this的实际动态类型选择正确的函数”。由于没有this,因此没有任何内容可供选择。