为什么不能将静态成员函数声明为const?
我知道静态函数不会对任何特定的类实例起作用。这意味着此类函数没有此指针(隐式地作为隐藏参数传递)到任何特定实例。但我不明白为什么在声明为const时会出现编译器错误,因为它没有更改任何特定实例。
其次,为什么不能将静态成员函数声明为虚拟?
需要澄清一下。
答案 0 :(得分:8)
为什么在声明为const
时会出现编译器错误
const
表示“this
是指向const
对象的指针”。由于没有this
,因此const
无需修改。
为什么不能将静态成员函数声明为虚拟
virtual
表示“根据this
的实际动态类型选择正确的函数”。由于没有this
,因此没有任何内容可供选择。