在C++中,要实现多态编程需要使用虚函数。 在基类中声明一个虚函数,派生类可以重写该虚函数,通过基类指针调用该虚函数时,程序会根据具体的实例类型调用相应的派生类函数。以下是一个简单的示例代码:
#include<iostream>
using namespace std;
class Shape{
public:
virtual void area() = 0;
};
class Circle : public Shape {
public:
void area() override {
cout << "计算圆的面积" << endl;
}
};
class Square : public Shape {
public:
void area() override {
cout << "计算正方形的面积" << endl;
}
};
int main() {
Shape* shape;
Circle circle;
Square square;
shape = &circle;
shape->area(); // 输出:计算圆的面积
shape = □
shape->area(); // 输出:计算正方形的面积
return 0;
}
在上面的代码中,我们定义了一个基类Shape
和两个派生类Circle
和Square
,Shape
中声明了一个纯虚函数area()
。派生类Circle
和Square
重写了Shape
中的area()
函数,并给出了具体的实现。 在main()
函数中,我们定义了一个基类指针shape
,并将其分别指向Circle
和Square
类的实例。 通过shape
指针调用area()
函数时,程序会根据实例类型调用相应的函数,这就是多态的体现。