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

 

Pandora Heart 41

最后修改日期:2015 年 9 月 26 日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。