有必要同时使用override和final吗?
override和final不冲突,override表示显示覆盖父类方法,final表示此方法不能被子类覆盖
■网友
有。final 并不能代替 override 检测重写错误。class Base{public:\tvirtual void fl() {}\tvirtual void gl() {}};class Derived : public Base{public:\t//二者都试图重写父类虚函数\tvirtual void f1() override final {}\t\t//error\tvirtual void g1() final {}\t\t//no error but not right};
■网友
没必要。
使用override的情景是显式的指明在覆盖虚函数,如果同时使用final将导致该类的子类无法定义自己的虚函数,从而无法覆盖基类的虚函数。
【有必要同时使用override和final吗?】 标准要求必须定义自己的虚函数,所以不会导致该函数错误,但是会导致其子类(如果有的话)错误。
推荐阅读
- 『先进』长江流域最先进洗舱站在宁投运 油可分离回收,水能循环使用
- 有必要重新开个C店吗
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 汽车|迈凯伦Artura不再使用迈凯伦祖传V8引擎了?
- 知乎有没有必要增加一个特别关注功能
- python的html5lib这个库咋使用啊我在网上也没有找到相关文档
- win7中本地连接跟无线网卡同时使用时是怎么样的模式
- 硝酸盐|会喝水的人少得病!温馨提示:一天有4个时间点,务必要喝水
- 可不可能利用网盘的秒传功能使用伪造的MD5(或其他信息)值进行文件分享
- 高圆圆|高圆圆高中时期到底有多美?班主任:至少有10个男生同时追她!
