使用C++语言编写一个完整程序,实现:桌上有一只盘子,每次只能放入一个水果。爸爸专门向盘子中放苹果,妈妈专门向盘子中放橘子,一个女儿专门等着吃盘子中的橘子,一个儿子专门等着吃盘子中的苹果
时间: 2024-12-30 12:41:37 浏览: 16
好的,这是一个简单的C++程序设计,我们可以创建一个类表示盘子、水果以及家庭成员的角色。这里我们将使用多态的概念,让每个角色都有一个代表自己行为的方法。
```cpp
#include <iostream>
using namespace std;
// 定义一个基类 Fruit
class Fruit {
public:
virtual void putInPlate() = 0; // 纯虚函数,用于放置水果
};
// 子类 Apple 和 Orange 继承自 Fruit
class Apple : public Fruit {
public:
void putInPlate() override {
cout << "爸爸正在往盘子里放一个苹果。" << endl;
}
};
class Orange : public Fruit {
public:
void putInPlate() override {
cout << "妈妈正在往盘子里放一个橘子。" << endl;
}
};
// 家庭成员类,等待吃水果
class Child {
private:
Fruit* plateFruit;
public:
Child(Fruit* fruit) { plateFruit = fruit; }
void eatFruit() {
if (plateFruit->putInPlate() == "妈妈正在往盘子里放一个橘子.") {
cout << "女儿看到盘子里有橘子,高兴地准备吃。" << endl;
} else if (plateFruit->putInPlate() == "爸爸正在往盘子里放一个苹果.") {
cout << "儿子看到盘子里有苹果,期待着吃。" << endl;
} else {
cout << "盘子里好像还没有水果哦。" << endl;
}
}
};
int main() {
Apple apple;
Orange orange;
Child daughter(&orange); // 女儿等橘子
Child son(&apple); // 儿子等苹果
// 家人执行各自的行为
apple.putInPlate();
orange.putInPlate();
// 家庭成员吃水果
daughter.eatFruit();
son.eatFruit();
return 0;
}
```
在这个程序中,我们创建了两个子类Apple和Orange,分别代表苹果和橘子。每个孩子类Child有一个指向Fruit类型的指针,通过这个指针可以调用各自的putInPlate方法,体现多态性。当孩子尝试吃水果时,会根据盘子当前的内容进行相应反馈。
阅读全文