有一个基类warrior和其五个派生类lion wolf ninja icrman dragon,每次都会产生其中的一个武士,并且每次产生的时候都会有位置和阵营,如何保存武士的位置和阵营信息并且能够查看位置和阵营信息以及武士类型c++
时间: 2024-02-17 15:59:48 浏览: 19
可以使用一个容器来保存武士的信息,例如使用一个vector容器,每次产生一个武士时,将其信息存储在vector中。可以定义一个结构体来保存武士的信息,包括武士类型、位置和阵营等信息,然后将该结构体作为vector的元素进行存储。
例如,定义如下结构体:
```
struct WarriorInfo {
string type; // 武士类型
int position; // 武士位置
string camp; // 武士阵营
};
```
然后在产生一个武士时,将其信息存储在vector中:
```
vector<WarriorInfo> warriors;
// 产生一个lion武士,位置为3,阵营为red
WarriorInfo lion = {"lion", 3, "red"};
warriors.push_back(lion);
// 产生一个wolf武士,位置为5,阵营为blue
WarriorInfo wolf = {"wolf", 5, "blue"};
warriors.push_back(wolf);
// 产生一个ninja武士,位置为8,阵营为red
WarriorInfo ninja = {"ninja", 8, "red"};
warriors.push_back(ninja);
// ...
```
可以通过遍历vector来查看每个武士的信息,例如:
```
for (int i = 0; i < warriors.size(); i++) {
cout << "武士类型:" << warriors[i].type << endl;
cout << "位置:" << warriors[i].position << endl;
cout << "阵营:" << warriors[i].camp << endl;
}
```