如何用数组方便的控制几个类?
是一个棋牌程序里的,因为要顺序抓牌,所以如果用数组就方便控制了
这样可以吗?:
CPlayer player1(a,b,c,d..);
CPlayer player2(a,b,c,d..);
CPlayer player3(a,b,c,d..);
CPlayer player4(a,b,c,d..);
CPlayer player[5];
player[1]=player1;
player[2]=player2;
player[3]=player3;
player[4]=player4;
for(int i=1;i <=4;i++) player[i].getcard();
...
我忘记这样是不是有问题了,反正我试了好多方法都不成功,各种各样的错误.
CPlayer *player[5]; ???
这太电脑没装编程软件.明天在另一台电脑上试过后结帖给分,谢谢.
[解决办法]
你这种用法,CPlayer必须要提供一个没有任何参数的构造函数。其实你可以存储指针:
CPlayer player1(a,b,c,d..);
CPlayer player2(a,b,c,d..);
CPlayer player3(a,b,c,d..);
CPlayer player4(a,b,c,d..);
CPlayer* player[5];
player[1]=&player1;
player[2]=&player2;
player[3]=&player3;
player[4]=&player4;
for(int i=1;i <=4;i++) player[i]-> getcard();
[解决办法]
//MFC CTypedPtrList
集合类也可以
typedef CTypedPtrList <CPtrList,CPlayer> CPlayerList
CPlayerList m_playerList;
[解决办法]
CArray, CList 都行, 但要用CPlayer的指针........
[解决办法]
我经常用CPtrArray,挺好使的。
同上楼,要用CPlayer指针(因为CPtrArray的成员是CObject *)。。。
例:
CPtrArray m_playerList;
CPlayer * player1, player2, player3, player4;
...(player1,2,3,4的初始化,各种操作等等)
// 为list添加元素
playerList.Add(player1);
playerList.Add(player2);
playerList.Add(player3);
playerList.Add(player4);
// 获得某元素
CPlayer *tmpPlayer;
...
tmpPlayer = ( CPlayer * )playerList.At(2); //不要忘了(CPlayer *)强行转换