一个类只能包含另一个类的对象,不能包含类。类与类之间只有继承的关系,没有包含的关系。
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++;
}
//这里可以继续写加减队伍人数的代码。
//.....
}
可以倒是可以,但是是有前提的,就是你这个数组里的类必须都是派生于同一个基类。然后数组类型为同一基类的类型。这样就可以用了。
其次就是访问上面,必须得用虚函数,不然会出现非法访问。但这样一来,你基类的函数就感觉好乱了。