这个类添加 很多重载
时间: 2024-02-01 09:04:42 浏览: 28
好的,以下是一个例子,我们在 `Shape` 类中添加了一些重载函数:
```c++
#include <iostream>
// 定义一个基类,其中包含一个纯虚函数和一些重载函数
class Shape {
public:
virtual void draw() = 0; // 纯虚函数
void draw(int x) {
std::cout << "Drawing with int parameter: " << x << std::endl;
}
void draw(double y) {
std::cout << "Drawing with double parameter: " << y << std::endl;
}
};
// 定义一个派生类,实现基类中的纯虚函数
class Circle : public Shape {
public:
void draw() {
std::cout << "Drawing a circle." << std::endl;
}
};
int main() {
// 创建一个 Circle 对象,并调用它的 draw 函数
Circle c;
c.draw();
// 创建一个 Shape 指针,并通过它调用 Circle 对象的不同重载函数
Shape* s = &c;
s->draw();
s->draw(10);
s->draw(3.14);
return 0;
}
```
在上面的代码中,我们在 `Shape` 类中添加了两个重载函数 `draw(int)` 和 `draw(double)`,它们分别接受一个整数和一个双精度浮点数参数。在 `main()` 函数中,我们创建了一个 `Circle` 对象,并调用它的 `draw()` 函数。然后我们还创建了一个 `Shape` 指针 `s`,并通过它调用 `Circle` 对象的不同重载函数。由于 `Shape` 中的函数并没有被实现,所以我们只能通过派生类 `Circle` 来调用它们。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](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)