C++ 重载与重写

文章目录

  • 1 . 前言
  • 2 . 差异图
  • 3 . 重载
  • 4 . 重写
  • 5 . 小结


【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485


1 . 前言

在面向对象语言中,经常提到重载与重写,以下内容直观描述两者差异

2 . 差异图

其中,重写要求父类有虚函数

模式 函数名 参数列表 返回值
重载 一样 不一样 不一样
重写 一样 一样 一样

3 . 重载

下图所示 : 以下的func的参数列表多了int x或者返回值与父类函数不一样,因此为重载,父类声明虚函数的意义在于是否想要让子类重写

class Obj_A
{

private:
    int a;

public:
    virtual void func() {

    }
};


class Obj_B : public Obj_A
{
private:
    int a;

public:
    void func(int x) {

    }
    int func() {

    }
};

4 . 重写

下图所示 : 父类func声明为虚函数,子类声明函数并且不改变函数名,不改变参数列表,不改变返回值,因此为重写

class Obj_A
{

private:
    int a;

public:
    virtual void func() {

    }
};


class Obj_B : public Obj_A
{
private:
    int a;

public:
    void func() {

    }
};

5 . 小结

重载改变函数结构,重写不改变函数结构

技术交流QQ群 : 745662457

  • 问题答疑,技术交流

你可能感兴趣的:(嵌入式,c++,开发语言,算法,数据库,单片机)