知识卡片
override锁定重写
内容
override 让编译器核验派生函数确实重写基类虚函数,包括参数类型、常量性和引用限定等约束;返回类型可协变,异常规格要兼容,并非全部逐字相同。接口演进时保留这一声明,可防止重写意图悄悄变成隐藏或新重载。
参考来源
- 位置:《Effective Modern C++》第3章《移步现代C++》,条款十二:使用 override 声明重写函数(源文件:_epub-src/EPUB/text/ch004.xhtml)
- 结论依据:原文列举重写条件,要求返回类型和异常说明兼容;原卡“全部匹配”过度概括,已纠正。
- 原始内容:基类函数必须是 virtual 基类和派生类函数名必须完全一样(除非是析构函数) 基类和派生类函数形参类型必须完全一样 基类和派生类函数常量性 const ness必须完全一样 基类和派生类函数的返回值和异常说明( exception specifications )必须兼容…