我问这个,因为术语可能有点误导。如果它是常量,则不能在派生类中重新定义它。但是,如果它是虚拟的或更好的纯虚拟,则预期/需要在派生类中重写。
那么,这里发生了什么?
答案 0 :(得分:5)
功能永远不会“不变”。非静态成员函数可以是const
。这并不意味着他们不能被覆盖。
const
成员函数是允许在const
对象上调用的函数,它不能修改对象的不可变成员或调用非const
成员函数在同一个对象上。 const
虚函数可以被派生类中具有相同名称和参数类型的const
函数覆盖。
无法覆盖的功能标记为final
。这与const
ness正交。
答案 1 :(得分:1)
const
修饰符表示方法未修改对象,this
指针为const
。尽管如此,mutable
成员仍然可以修改。