C++动态绑定时,重载的虚函数形参不同,编译不会报错,但调用的函数将出问题
C++使用override显式告知编译器,该虚函数重载了父类,如形参不一致将会报错~
具体事例如下
class A { public: virtual void func(){printf("A func\n");}; A(){printf("A\n");}; virtual ~A(){printf("~A\n");}; }; class B :public A { public: //virtual void func()override{printf("B func\n");}; virtual void func(){printf("B func\n");}; B(){printf("B\n");}; virtual ~B(){printf("~B\n");}; };
如代码后期由他人维护,维护者修改了B::func为B::func(int num)
则编译不会报错,但是当使用多态时,调用会出现问题.
加上override,可在编译时检测到问题
留言