用c++代码实现上述效果
时间: 2024-09-07 15:04:54 浏览: 40
实现多态性的关键在于定义虚函数。在C++中,如果一个成员函数被声明为虚函数,那么它就可以被子类重写。下面是一个简单的例子,展示了如何在C++中实现多态性:
```
#include <iostream>
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 Rectangle : public Shape {
public:
void draw() {
cout << "Drawing a rectangle." << endl;
}
};
int main() {
Shape *s1, *s2;
Circle c;
Rectangle r;
s1 = &c;
s1->draw();
s2 = &r;
s2->draw();
return 0;
}
```
在这个例子中,我们定义了一个抽象的`Shape`类,它包含一个虚函数`draw()`。然后我们创建了两个子类:`Circle`和`Rectangle`,它们分别重写了`Shape`类的`draw()`函数。在主函数中,我们定义了两个指向`Shape`对象的指针`s1`和`s2`,并将它们分别指向了一个`Circle`对象和一个`Rectangle`对象。当我们调用`s1->draw()`和`s2->draw()`时,会分别调用`Circle`和`Rectangle`类的`draw()`函数。
阅读全文