找回密码
 立即注册

QQ登录

只需一步,快速开始

工控课堂 首页 工控文库 上位机编程 查看内容

C++的函数重载和函数重写

2022-4-17 18:15| 发布者: 198366809| 查看: 973| 评论: 0|来自: 算法集市(头条)

摘要: C++中,函数重载描述的是同一个类中不同成员函数之间的关系;函数重写是子类和基类之间不同成员函数之间的关系。1、函数重载在相同作用域中存在多个同名的函数,这些函数的参数表不同,编译器根据函数不同的形参表对 ...
C++的函数重载和函数重写

C++中,函数重载描述的是同一个类中不同成员函数之间的关系;函数重写是子类和基类之间不同成员函数之间的关系。

1、函数重载

在相同作用域中存在多个同名的函数,这些函数的参数表不同,编译器根据函数不同的形参表对同名函数的名称做修饰,然后这些同名函数就成了不同的函数。

特点:

  • 函数重载必须在同一个类或同一个命名空间中进行;
  • 子类无法重载父类函数,父类同名函数将被覆盖;
  • 重载是在编译器期间根据参数类型和个数决定调用哪个函数。

函数重载的代码示例:

void Test(int a);
void Test(double a);
void Test(int a, int b);
void Test(double a, int b);

注意:如果仅仅是函数的返回值不同,是没办法重载的。

2、函数重写

子类重写从基类继承过来的函数,子类的函数名、返回值、参数列表都必须和基类相同。

特点:

  • 函数重写必须发生在父类与子类之间;
  • 父类与子类的函数原型完全一样;
  • 使用virtual声明之后能够产生多态(若不写virtual关键字,则称为重定义),多态是在运行期间根据具体对象的类型来决定调用哪个函数。

函数重写和多态的代码示例:

#include <iostream>
using namespace std;

class base {
public:
    void Display1() {} 
    virtual void Display2() {}
};

class derived : public base {
public:
    void Display1() {}  // 函数重写
    virtual void Display2() {}  // 虚函数实现多态
};
关注公众号,加入500人微信群,下载100G免费资料!

最新评论

热门文章
关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 23:54 , Processed in 0.059235 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部