21xrx.com
2024-06-03 03:34:04 Monday
登录
文章检索 我的文章 写文章
C++子类重载父类函数
2023-07-09 15:43:44 深夜i     --     --
C++ 子类 重载 父类函数

在C++的面向对象编程中,常常会遇到类之间的继承关系。父类中的函数可以被子类所重载,即在子类中重新定义一个与父类函数同名、形参列表相同、返回值类型相同的函数。这种操作称为子类重载父类函数。

子类重载父类函数有以下几个特点:

1. 可以在子类对象中直接调用子类中的函数,也可以调用从父类继承来的函数。如果子类重载了父类中的函数,则在调用该函数时,会优先执行子类中的函数。

2. 子类重载函数的方式要符合函数重载的规则,即函数名相同,但形参列表不同或者形参类型、顺序不同。

3. 子类可以在重载函数中调用父类的函数,使用“父类名::函数名”的方法调用即可。这种方法可以保证重载函数不会覆盖父类的同名函数。

下面是一个例子,展示了子类如何重载父类的函数:


#include <iostream>

using namespace std;

class Shape {

public:

  virtual void draw()

    cout << "Drawing Shape" << endl;

  

};

class Circle: public Shape {

public:

  void draw()

    cout << "Drawing Circle" << endl;

  

};

int main() {

  Shape *s1 = new Shape;

  Circle *c1 = new Circle;

  s1 -> draw(); // 输出 "Drawing Shape"

  c1 -> draw(); // 输出 "Drawing Circle"

  return 0;

}

在这个例子中,Shape是一个父类,Circle是一个子类。Circle重载了Shape中的draw()函数,并在其中输出了一个字符串。 在主函数中,分别创建了一个Shape对象和一个Circle对象,并调用了它们的draw()函数。可以注意到,当调用Shape对象的函数时,输出了父类中的字符串;而当调用Circle对象的函数时,输出了子类中的字符串。

重载父类函数是OOP编程中非常重要的一部分。它可以让子类更好地继承父类的特征,并在此基础上发展出自己的特色。在实际的编程工作中,需要充分理解重载函数的相关概念和使用方式,才能编写出更加高效、稳定、生产力的代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复