c++关于多态的代码和详解
时间: 2024-05-09 21:22:13 浏览: 29
多态是面向对象程序设计的重要概念之一,它指的是同一个函数或操作符作用于不同的对象时,可以有不同的实现方式和表现形式。
下面是C++中多态的简单实现示例代码:
```cpp
class Shape {
public:
virtual void draw() {
cout << "这是一个形状" << endl;
}
};
class Circle : public Shape {
public:
void draw() {
cout << "这是一个圆形" << endl;
}
};
class Rectangle : public Shape {
public:
void draw() {
cout << "这是一个矩形" << endl;
}
};
int main()
{
Shape* shape;
Circle circle;
Rectangle rectangle;
shape = &circle;
shape->draw(); // 运行时调用Circle类的draw()函数
shape = &rectangle;
shape->draw(); // 运行时调用Reatangle类的draw()函数
return 0;
}
```
解释:在这个例子中,我们定义了一个基类 `Shape` 和两个派生类 `Circle` 和 `Rectangle`。我们在基类中定义了一个虚函数 `draw()`,并在派生类中实现了不同的方法。在 `main()` 函数中,我们定义了一个类型为 `Shape*` 的指针 `shape`,并分别将其指向 `Circle` 和 `Rectangle`。通过运行时调用虚函数,我们可以在运行时动态地选择调用 `Circle` 或 `Rectangle` 类实现的 `draw()` 函数。
希望这个例子能够帮助你理解多态的概念和实现方式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)