在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()函数时,程序会根据实例类型调用相应的函数,这就是多态的体现。