c++ - 如何向现有类数组插入新值? (C++)

标签 c++ arrays class pointers object

如果问题不够清楚,请见谅。我的 main 中有一个类数组,如下所示:

Character *character[100] = { new Player(001, 10, 5, "one", "type", "desc", "status", "knife", 10.0, 20.0, false, true, "Warrior", "M"),
                              new Enemies(200, 5, 0, "Snake", "Creep", "Normal Monsters", "Roaming", "None", 15.0, 23.4, true, true,"Poison"),
                              new Enemies(201, 7, 0, "Wolf", "Creep", "Normal Monsters", "Roaming", "None", 15.0, 23.4, true, true, "Bite"),
                              new Enemies(210, 7, 0, "Dragon", "Boss", "Dungeon Boss", "Idle", "None", 15.0, 23.4, false, false,"Flamethrower"),
                              new Enemies(*(Enemies*)character[1]),
                              new NPC(700,0,0,"Nero","NPC","Lobby NPC","Idle","None",0.0,0.0,false,false,"Lobby")};

在我的 addCharacter 函数中,我想在添加新角色之前先检查 ID 是否存在。所以假设我想添加一个新玩家。我想先检查玩家是否存在。我怎么做?这是我试过的代码。

cout << "=====================" << endl;
            cout << "Add new player[" << count << "]" << endl;
            cout << "=====================" << endl;
            fflush(stdin);
            cout << "Enter ID                  : ";
            cin >> insert.ID;
            for (int n = 0; n < 100; n++)
            {
                if (Player[n].getID() == insert.ID) //Error highlight under Player. Error:class "Character" has no member "Player"
                {
                    cout << "ID already exists in index No." << n << " Please try again." << endl;
                    system("pause");
                    break; //Exit the function loop                 
                }
            }
            cout << "Enter Level               : ";
            cin >> insert.Level;
            cout << "Enter number of weapon(s) : ";
            cin >> insert.NoOfWeapon;

最佳答案

Player 是您的类名。 character 是你的数组变量名。所以你应该测试。

if (character[n]->getID() == insert.ID)

但是,您的数组中的很多项都将包含 NULL 条目,因此您需要先检查一下。这样的事情会起作用。

if (character[n] != NULL && character[n]->getID() == insert.ID)

注意:使用 -> 从指针访问成员值(感谢 WhozCraig 指出这一点)。

关于c++ - 如何向现有类数组插入新值? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110805/

相关文章:

c++ - 文本文件编码方案

C++ - 对教授的类实例化的特定示例感到困惑

C++:实例化没有 namespace 的对象

c++ - IEEE 浮点标准的 (+0)+(-0) 是什么?

c++ - 使用包含静态成员变量的类的 vector

javascript - 如何按给定的组数创建一系列数字的通讯组

javascript - 将两个多维数组合并为一个包含对象的多维数组

java 数组越界异常

java - 创建自定义类! java

c++ - 如何将模板化类实例作为模板参数传递给另一个模板?