我需要做一些我认为称为 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;
这可能吗?我只需要一个演示让我适应。 谢谢,布鲁诺阿拉诺。
答案 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/
希望这有帮助。