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,可在编译时检测到问题

留言