有必要同时使用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吗?】 标准要求必须定义自己的虚函数,所以不会导致该函数错误,但是会导致其子类(如果有的话)错误。


    推荐阅读