介绍
在本实验中,我们将实现 C++ 中的多态性概念。多态性是面向对象编程中的一个概念,它允许单个函数以不同的方式使用。多态性有两种类型:编译时多态性(静态多态性)和运行时多态性(动态多态性)。在本实验中,我们将重点讨论运行时多态性(动态多态性)。
在本实验中,我们将实现 C++ 中的多态性概念。多态性是面向对象编程中的一个概念,它允许单个函数以不同的方式使用。多态性有两种类型:编译时多态性(静态多态性)和运行时多态性(动态多态性)。在本实验中,我们将重点讨论运行时多态性(动态多态性)。
首先,我们将在 ~/project
目录下创建一个名为 main.cpp
的 C++ 文件:
$ cd ~/project
$ touch main.cpp
在这一步中,我们将创建一个名为 Shape
的类。Shape
类将包含一个名为 area()
的虚函数。然后,我们将创建两个类 Rectangle
和 Triangle
,它们将继承 Shape
类并重写虚函数 area()
。创建完这些类后,我们将创建一个 Shape
类的对象数组,然后遍历数组以调用每个对象的 area()
函数。
#include <iostream>
using namespace std;
class Shape {
public:
virtual float area() {
return 0;
}
};
class Rectangle: public Shape {
public:
float area() {
cout << "Rectangle class area()" << endl;
return 0;
}
};
class Triangle: public Shape {
public:
float area() {
cout << "Triangle class area()" << endl;
return 0;
}
};
int main() {
Shape *shape;
Rectangle rec;
Triangle tri;
shape = &rec;
shape->area();
shape = &tri;
shape->area();
return 0;
}
在这一步中,我们将使用以下命令编译并运行代码:
$ g++ main.cpp -o main
$ ./main
上述程序的输出将是:
Rectangle class area()
Triangle class area()
在本实验中,我们学习了如何在 C++ 中实现多态性的概念。我们创建了一个包含虚函数 area()
的类 Shape
。然后,我们创建了两个类 Rectangle
和 Triangle
,它们继承了 Shape
类并重写了虚函数 area()
。最后,我们创建了 Rectangle
和 Triangle
类的对象,并通过基类 Shape
的对象调用 area()
函数,从而实现了对相应类的调用。