定义抽象类Tool,声明function函数为纯虚函数 派生类Computer继承自抽象类,派生类MobilePhone继承自抽象类,这两个类都实现function函数的定义。 写一个普通函数,void show(Tools& t)和void show(Tools* t),要求在这个函数中调用function函数的功能,并且根据传入的类型不同,使用多态来进行响应。
时间: 2024-04-08 15:31:20 浏览: 71
深入解析C++编程中的纯虚函数和抽象类
5星 · 资源好评率100%
下面是关于抽象类 `Tool` 和其派生类 `Computer` 和 `MobilePhone` 的定义,以及 `show` 函数的实现:
```cpp
#include <iostream>
// 抽象类 Tool
class Tool {
public:
virtual void function() const = 0; // 纯虚函数
};
// 派生类 Computer
class Computer : public Tool {
public:
void function() const override {
std::cout << "Computer function\n";
}
};
// 派生类 MobilePhone
class MobilePhone : public Tool {
public:
void function() const override {
std::cout << "MobilePhone function\n";
}
};
// 普通函数 show,使用多态进行响应
void show(Tool& t) {
t.function();
}
void show(Tool* t) {
t->function();
}
int main() {
Computer computer;
MobilePhone mobilePhone;
show(computer);
show(mobilePhone);
show(&computer);
show(&mobilePhone);
return 0;
}
```
在上面的代码中,定义了抽象类 `Tool`,并声明了纯虚函数 `function`。然后派生类 `Computer` 和 `MobilePhone` 分别继承自抽象类,并实现了 `function` 函数的定义。
接下来,定义了两个重载的普通函数 `show`,它们接受 `Tool` 类型的引用和指针作为参数。在这两个函数中,调用了传入对象的 `function` 函数,并利用多态性质实现了对应派生类中的函数调用。
在 `main` 函数中,创建了 `Computer` 和 `MobilePhone` 的对象,并分别调用了 `show` 函数来展示多态的效果。
阅读全文