定义抽象类Tool,声明function函数为纯虚函数 派生类Computer继承自抽象类,派生类MobilePhone继承自抽象类,这两个类都实现function函数的定义。 写一个普通函数,void show(Tools& t)和void show(Tools* t),要求在这个函数中调用function函数的功能,并且根据传入的类型不同,使用多态来进行响应。
时间: 2024-04-08 22:31:18 浏览: 73
纯虚函数与抽象类的概念
下面是C++语言的实现:
```cpp
#includeiostream>
using namespace std;
// 抽象类 Tool
class Tool {
public virtual void function() = 0; 纯虚函数
virtual ~Tool() {}
// 派生类 Computer
class Computer : public {
public:
void function() {
cout << "Computer is running." << endl;
}
};
// 派生类 MobilePhone
class MobilePhone : public Tool {
public:
void function() {
cout << "Mobile phone is calling." << endl;
}
};
// 普通函数,使用指针调用多态
void show(Tool* t) {
t->function();
}
// 普通函数,使用引用调用多态
void show(Tool& t) {
t.function();
}
int main() {
Computer c;
MobilePhone m;
// 使用指针调用多态
show(&c);
show(&m);
// 使用引用调用多态
show(c);
show(m);
return 0;
}
```
在这段代码中,我们定义了一个抽象类`Tool`,其中包含一个纯虚函数`function()`。然后我们创建了两个派生类`Computer`和`MobilePhone`,它们分别实现了`function()`函数的具体定义。
接下来,我们定义了两个普通函数`show(Tool* t)`和`show(Tool& t)`,这两个函数都接受一个`Tool`类型的参数,并调用该参数对象的`function()`函数。通过使用指针或引用作为参数,我们可以实现多态性,根据传入的对象类型来调用相应的函数。
在`main()`函数中,我们创建了一个`Computer`对象和一个`MobilePhone`对象,并分别使用指针和引用调用`show()`函数,以演示多态性的效果。
阅读全文