首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么用数组方便的控制几个类

2012-02-20 
如何用数组方便的控制几个类?是一个棋牌程序里的,因为要顺序抓牌,所以如果用数组就方便控制了这样可以吗?:

如何用数组方便的控制几个类?
是一个棋牌程序里的,因为要顺序抓牌,所以如果用数组就方便控制了

这样可以吗?:

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 *)强行转换

热点排行