通过指向基类circle对象的指针调用虚函数area()来实现多态性。c++
时间: 2023-12-28 11:03:55 浏览: 110
假设有一个基类 Circle 和一个派生类 Cylinder,其中 Cylinder 继承了 Circle 类。Circle 类中有一个虚函数 area(),Cylinder 类中重写了该函数。
我们可以通过指向 Circle 类对象及其派生类对象的指针来调用 area() 函数,从而实现多态性。具体代码实现如下:
```c++
#include <iostream>
using namespace std;
class Circle {
public:
virtual double area() {
cout << "This is the area of Circle." << endl;
return 0;
}
};
class Cylinder : public Circle {
public:
double area() {
cout << "This is the area of Cylinder." << endl;
return 0;
}
};
int main() {
Circle* c1 = new Circle();
Circle* c2 = new Cylinder();
c1->area();
c2->area();
delete c1;
delete c2;
return 0;
}
```
在上述代码中,我们创建了两个指向 Circle 类对象及其派生类 Cylinder 对象的指针 c1 和 c2。通过这两个指针分别调用了 area() 函数,输出了不同的结果,实现了多态性。最后记得释放动态分配的内存。
阅读全文