如何使用虚函数实现多态性

2023-06-28 03:38:06

如何使用虚函数实现多态性

多态性是面向对象编程中的一个重要概念,它允许不同的对象以不同的方式响应相同的消息或方法调用。在C++中,我们可以使用虚函数来实现多态性。

虚函数是一种特殊的成员函数,它可以被子类重写并在运行时动态绑定到父类指针或引用。这意味着,当我们调用一个虚函数时,实际上会调用子类中重写的函数,而不是父类中的函数。这就是多态性的实现方式。

下面是一个简单的例子,演示了如何使用虚函数实现多态性:

```c++

#include

using namespace std;

class Shape {

public:

virtual void draw() {

cout << "Drawing a shape." << endl;

}

};

class Circle : public Shape {

public:

void draw() {

cout << "Drawing a circle." << endl;

}

};

class Square : public Shape {

public:

void draw() {

cout << "Drawing a square." << endl;

}

};

int main() {

Shape* shape1 = new Circle();

Shape* shape2 = new Square();

shape1->draw(); // 输出 "Drawing a circle."

shape2->draw(); // 输出 "Drawing a square."

delete shape1;

delete shape2;

return 0;

}

```

在上面的例子中,我们定义了一个基类Shape和两个派生类Circle和Square。Shape类中有一个虚函数draw(),它被子类重写。在main函数中,我们创建了一个Circle对象和一个Square对象,并将它们分别赋值给Shape指针shape1和shape2。然后,我们调用shape1和shape2的draw()函数,输出了不同的结果。

这就是多态性的实现方式。由于draw()函数是虚函数,它会被动态绑定到子类中的函数,因此我们可以在运行时根据实际对象的类型来调用不同的函数。这就是多态性的本质。

总结一下,使用虚函数可以实现多态性,允许不同的对象以不同的方式响应相同的消息或方法调用。在C++中,我们可以通过将函数声明为虚函数来实现多态性。当我们调用一个虚函数时,实际上会调用子类中重写的函数,而不是父类中的函数。这就是多态性的实现方式。

【 huguan123.com - 虎观资讯 】

热门推荐
一不做二不休的意思
图文
一不做二不休的意思
一不做二不休的意思是:指要么不做,做了就索性做到底。指事情既然做了开头,就索性做到底。成语出自唐代赵元的《奉天录》第四卷,原文:光晟临死而言曰:传语后人,第一莫作,第二莫休。
发布时间:2021-09-19
996工作制是什么意思
图文
996工作制是什么意思
996工作制,是指工作日早9点上班,晚上9点下班,中午和傍晚休息1小时(或不到),总计10小时以上,并且一周工作6天的工作制度,是一种违反《中华人民共和国劳动法》的工作制度。
发布时间:2021-10-06
黔驴技穷是什么意思
图文
黔驴技穷是什么意思
黔驴技穷:比喻有限的一点技能也已经用完了。讽刺一些虚有其表,外强中干,无德无才的人。
发布时间:2021-10-12
Copyright © 2017 - 2019 虎观百科. All rights reserved. 粤ICP备17044743号-5
DedeTag Engine Create File False