通过用户输入到对象的指针的C 向量

C++ Vector of pointer to objects through user input

本文关键字:指针 向量 对象 用户 输入      更新时间:2023-10-16

我正在使用Visual Studio 2015

学习C

我正在研究它,我无法经历一些东西。也许您可以给我一个更好的见解。

我已经学会了有关类,结构,数组和功能的部分。

我想创建一个使用多个玩家的程序,但可以从2-4不等(例如:

class Player{
public: 
    Player(){
        hp=5;
        mana=10;
        alive=false;
    };
    int hp;
    int mana;
    bool alive;
};
int _tmain(int argc, _TCHAR* argv[])
{
    // data here //
    retry:
    cin >> numberofPlayers;
    if (numberofPlayers < 2 || numberofPlayers>4)
    {
        cout << "That's Impossible! Don't mock me!" << endl;
        goto retry;
    }
    else
    {
        cout << "Great!" << endl;
    }

因此,我想创建一个将存储不同播放器变量的向量指针对象。

例如:

在这里我的问题开始:(

Player* pointerplayer = new Player();

vector<Player*> vectorPlayer;
Player* pointerplayer = new Player();
for (int i = 0; i < numberofPlayers; i++)
{
    vectorPlayer.push_back(new Player());
    cout << vectorPlayer[i] << endl;
}

我的问题是当我尝试查看输出时,我猜指针的地址。

01639B40
01643F98
01643C80

我希望输出像:

1 
2
3

我知道我没有经常这样做,但是有些东西逃脱了我,我看不到它。

因为我想在2-4个播放器之间创建由用户输入的播放器。对于每个播放器,创建一个带有每个变量的player((。并取决于(1,2,3,4(的输出,具体取决于数字。

将您的代表语句更改为:

cout << (i + 1) << endl;