对象的数组

时间:2011-07-07 20:15:17

标签: c++ oop class object

我需要做一些我认为称为 Object Array 的事情。 例如: 玩家访问服务器,此服务器会将此播放器分配为此类组的对象,因此会有许多同一类的对象。

有没有办法让每个玩家使用一行,但必须实时编辑和编辑源代码而不停止服务器,这是不可能的,但要证明:

Player p0000001 ("Nickname", 150);
Player p0000002 ("OtherNickname", 17);
Player pNNNNNNN ("Nick", 00);

我想要类似的内容:

Player players[0].nickname = "Nickname";
Player players[0].level = 150;
Player players[1].nickname = "OtherNickname";
Player players[1].level = 17;

这可能吗?我只需要一个演示让我适应。 谢谢,布鲁诺阿拉诺。

3 个答案:

答案 0 :(得分:1)

最好的方法是使用STL containers之一,例如std::vector

#include <vector>

std::vector<Player> players;
players.push_back(Player("Nickname", 150));

可以找到std::vector的完整参考on cplusplus.com

答案 1 :(得分:0)

如果我理解正确,你想要动态处理未知数量的玩家(这意味着你无法在编译时对其进行硬编码)。 这通常意味着使用new / delete进行动态内存分配。 由于你不知道会有多少玩家,你应该使用动态大小的数据结构,比如std :: vector或std :: list。

如果你使用std :: vector / list尝试处理指针而不是对象本身,因为它会触发copy-constructors,析构函数,因此只需要保存这些值就可以进行大量不必要的操作。

答案 2 :(得分:0)

我不确定,但我认为您需要一个监控输入文件的C ++程序。真的吗?如果是,你只需要程序来读取每一行(即!eof)。客户端将以附加模式打开文件,并在新用户加入服务器时添加行。

你可以在这里找到一些代码:

http://www.dreamincode.net/forums/topic/222664-how-to-read-continuously-refreshed-file-in-c/

希望这有帮助。