有一个基类warrior和其五个派生类,使用vector二维数组保存其信息,并且确定数组的每个元素为一个派生类
时间: 2024-02-17 20:01:25 浏览: 147
好的,我了解你的问题。你的问题是关于类的继承和使用vector二维数组保存信息的问题。你说你有一个基类warrior和五个派生类,你想用vector二维数组来保存它们的信息,并且每个数组元素都是一个派生类。你想知道如何实现这个功能。
首先,让我们来看看如何创建类的继承关系。你可以使用以下语法来创建一个派生类:
```
class DerivedClass : public BaseClass {
// class members
};
```
在这个语法中,`DerivedClass`是你要创建的派生类,`BaseClass`是你要继承的基类。你可以在`DerivedClass`中添加自己的成员变量和成员函数,同时也可以覆盖基类的成员函数。
接下来,让我们来看看如何使用vector二维数组来保存信息。你可以使用以下语法来创建一个二维vector:
```
vector<vector<BaseClass*>> myArray;
```
在这个语法中,`myArray`是你要创建的二维vector,`BaseClass*`是指向基类对象的指针。你可以将派生类对象的指针添加到二维vector中,如下所示:
```
Warrior* myWarrior = new Warrior();
myArray[0][0] = myWarrior;
```
在这个语法中,`myWarrior`是一个指向派生类对象的指针,`myArray[0][0]`是vector二维数组的第一个元素。
综上所述,你可以使用以下代码来创建一个基类warrior和五个派生类,并使用vector二维数组来保存它们的信息:
```
#include <vector>
class Warrior {
// class members
};
class DerivedClass1 : public Warrior {
// class members
};
class DerivedClass2 : public Warrior {
// class members
};
class DerivedClass3 : public Warrior {
// class members
};
class DerivedClass4 : public Warrior {
// class members
};
class DerivedClass5 : public Warrior {
// class members
};
int main() {
std::vector<std::vector<Warrior*>> myArray(5, std::vector<Warrior*>(5));
DerivedClass1* myDerivedClass1 = new DerivedClass1();
myArray[0][0] = myDerivedClass1;
DerivedClass2* myDerivedClass2 = new DerivedClass2();
myArray[1][0] = myDerivedClass2;
DerivedClass3* myDerivedClass3 = new DerivedClass3();
myArray[2][0] = myDerivedClass3;
DerivedClass4* myDerivedClass4 = new DerivedClass4();
myArray[3][0] = myDerivedClass4;
DerivedClass5* myDerivedClass5 = new DerivedClass5();
myArray[4][0] = myDerivedClass5;
return 0;
}
```
希望这个例子可以帮助你理解如何实现你想要的功能。
阅读全文