重载和覆盖

来源:互联网 发布:淘宝图片多大打开的快 编辑:程序博客网 时间:2024/06/07 00:45

重载:重载函数名,只要函数的参数表唯一就行:或者是参数的个数不同,或者是参数类型不同;和返回值无关。

如果两个函数的参数表相同,但是返回类型不同,则第二个声明被视为第一个的错误重复声明,会被标记为编译错误。 


重载和覆盖的区别

1. 重载要求函数名相同,但是参数列表必须不同,返回值可以相同也可以不同。

    覆盖要求函数名、参数列表、返回值必须相同。

2. 在类中重载是同一个类中不同成员函数之间的关系

    在类中覆盖则是子类和基类之间不同成员函数之间的关系

3. 重载函数的调用是根据参数列表来决定调用哪一个函数

    覆盖函数的调用是根据对象类型的不同决定调用哪一个

4. 在类中对成员函数重载是不能够实现多态

    在子类中对基类虚函数的覆盖可以实现多态