您的位置:首页 > 编程语言 > C语言/C++

C++重写和重载的区别

2014-05-23 16:48 78 查看
重载就是:是函数名相同,参数列表不同 重载只是在类的内部存在。

重写:也叫做覆盖。子类重新定义父类中有相同名称和参数的虚函数。说白了,就是在继承关系中出现的 。

一句话就是重载是同一层次函数名相同。覆盖是在继承层次中成员函数的函数原型完全相同。

重写主要标志特征:
1. 被重写的函数不是static的。必须是virtual的。
2 重写函数必须有相同的类型,名称和参数列表
说了上面那么多,直接来段代码吧。
class a

{

public:

void xy(int x){ cout << "xxx " << x << endl; } ① |

void xy(float x){ cout << "xxx " << x << endl; } ② |这是重载了①的函数。 重载是在同一个类发生。

virtual void gd(void){ cout << "a::gd(void)" << endl;}

};

class b : public a

{

public:

virtual void gd(void){ cout << "b::gd(void)" << endl;} //这就是重写。被重写的函数必须是虚函数。

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: