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

时间:2017-04-18 19:11:35

标签: c++ pointers vector

我正在使用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;
    }

所以在它之后,我想创建一个向量指针对象,它将存储不同的玩家变量。

e.g:

这里我的问题开始了:)

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)的输出取决于数字。

1 个答案:

答案 0 :(得分:0)

将您的cout语句更改为:

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