虚拟函数不变是什么意思?

B-M*_*Mac 0 c++

我问这个是因为术语可能有点误导.如果它是常量,则不能在派生类中重新定义它.但是,如果它是虚拟的或更好的纯虚拟,则预期/需要在派生类中重写.

那么,这里发生了什么?

Bri*_*ian 5

功能永远不会"不变".非静态成员函数可以const.这并不意味着他们不能被覆盖.

一个const成员函数是一个允许您调用的const对象,而且它不能修改对象的非可变成员或拨打非const对同一对象的成员函数.甲const虚拟功能可以由覆盖const有在派生类相同的名称和参数类型的功能.

标记了无法覆盖的功能final.这与constness 正交.