c++子类和父类的同名函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c++子类和父类的同名函数
C++是一种支持面向对象编程的计算机程序设计语言。

在C++中,子类和父类可以具有相同名称的函数,这种情况被称为同名函数。

同名函数可以短路掉父类函数的,也可以像
父类函数一样使用。

这篇文章将探讨C++中子类和父类的同名函数,以及它们在程序设计
中的应用。

首先,让我们了解C++中的继承概念。

继承是一种面向对象编程的基本概念,它允许
子类继承其父类的属性和方法。

在C++中,我们可以使用关键字“extends”来创建子类,并使用“super”关键字来调用父类的构造函数。

在C++中,如果子类定义了一个与父类同名的函数,那么这个子类的函数会覆盖父类
的函数。

这意味着,如果我们在子类中调用同名函数,实际上会执行子类函数而不是父类
函数。

然而,如果我们仍想使用父类函数,我们可以使用“super”关键字来调用父类函数。

```C++
#include <iostream>
using namespace std;
// 父类
class Shape{
public:
virtual void draw(){ cout << "画个形状" << endl; }
};
在这个例子中,我们创建了一个Shape类和一个Rectangle类,Rectangle类继承自Shape类。

在Shape类中,我们定义了一个名为“draw”的虚函数,该函数打印一条消息:“画个形状”。

在Rectangle类中,我们定义了一个具有相同名称的函数,该函数打印一
条消息:“画个矩形”。

可以看到,在子类中定义一个同名函数会覆盖父类的函数。

在这个例子中,我们看到
当我们在Rectangle类中定义了一个draw函数时,它覆盖了Shape类中的draw函数。

但是,如果没有在子类中定义这个函数,我们会使用父类的draw函数。

然而,如果我们需要在子类中使用父类的同名函数,我们可以使用“super”关键字。

例如,在上述示例中,我们可以通过以下方式调用Shape类的draw函数:
在Rectangle类中,我们重载了draw函数,但它在调用父类的draw函数之前打印一些内容。

我们使用“Shape::”语法作为超类的引用来调用父类的draw函数。

相关文档
最新文档