VC++ 如何把几个类 弄成一个数组,然后增加,删除,交换位置?

2024-11-28 04:53:04
推荐回答(2个)
回答(1):

一个类只能包含另一个类的对象,不能包含类。类与类之间只有继承的关系,没有包含的关系。

void main()
{
footman ft1, ft2;        //从步兵类声明2个步兵对象。
mage mg1, mg2;           //从法师类声明2个法师对象。

ft1.setteam(1);        //设置对象的编队,队伍一2个步兵,1个法师。
ft2.setteam(1); 
mg1.setteam(1);
int count=3; //根据全局静态变量得到,这里直接得。
person *team1; //person,为footman, mage的基类。
team1 =new person[count]; //开辟指向队伍1的3个person的指针数组。
for (int i=0;i<3;i++)     //遍历指针数组调用移动函数。队里面3个人同时移动
{
team1->move(1);
team1++;
}                   
//这里可以继续写加减队伍人数的代码。
//.....
}

回答(2):

可以倒是可以,但是是有前提的,就是你这个数组里的类必须都是派生于同一个基类。然后数组类型为同一基类的类型。这样就可以用了。
其次就是访问上面,必须得用虚函数,不然会出现非法访问。但这样一来,你基类的函数就感觉好乱了。