C++ 在C+中创建多个动态分配的对象+;

C++ 在C+中创建多个动态分配的对象+;,c++,instantiation,dynamicobject,C++,Instantiation,Dynamicobject,对于那些比我聪明得多的人来说,还有一个问题: 我试图创建3个这样的玩家类实例: Player *player1 = new Player("Aaron",0.3333333); Player *player2 = new Player("Bob",0.5); Player *player3 = new Player("Charlie",1); 您可以在下面看到它们的构造函数。其实很简单: Player::Player(string n, double hr) { name = n;

对于那些比我聪明得多的人来说,还有一个问题:

我试图创建3个这样的玩家类实例:

Player *player1 = new Player("Aaron",0.3333333);
Player *player2 = new Player("Bob",0.5);
Player *player3 = new Player("Charlie",1);
您可以在下面看到它们的构造函数。其实很简单:

Player::Player(string n, double hr)
{
    name = n;
    hitrate = hr;
}

(假设名称和命中率定义正确)

现在我的问题是,当我试图检查每个球员的名字时,他们似乎都成了player3的别名

//Directly after the player instantiations:
cout << player1->getName() << "\n";
cout << player2->getName() << "\n";
cout << player3->getName() << "\n";

//In the Player.cpp file:
string Player::getName(){
    return name;
}


Outputs: 
Charlie
Charlie
Charlie
//直接在播放器实例化之后:

cout getName()名称和命中率变量需要在Player类声明中,以便每个对象都有自己的单独副本

class Player
{
    public:
        Player(string, double);
        string getName();

    private:
        string name;
        double hitrate;
};

name和hitrate变量需要在Player类声明中,以便每个对象都有自己的单独副本

class Player
{
    public:
        Player(string, double);
        string getName();

    private:
        string name;
        double hitrate;
};

“只要假设名称和命中率定义正确”否!你能发布一个我们可以运行的可编译、自包含的程序吗?名称和命中率是全局声明的还是使用静态声明的?从你给我们的内容来看,这大概是你的程序和工作原理:我用我正在使用的3个文件的代码编辑了这个问题。我想把它简化成一个文件,但我的问题可能在于它们是如何分开的,我的任务要求它们是分开的!你能发布一个我们可以运行的可编译、自包含的程序吗?名称和命中率是全局声明的还是使用静态声明的?从你给我们的内容来看,这大概是你的程序和工作原理:我用我正在使用的3个文件的代码编辑了这个问题。我曾考虑将其简化为一个文件,但我的问题可能在于它们是如何分开的,而我的任务要求它们是分开的。
class Player
{
    public:
        Player(string, double);
        string getName();

    private:
        string name;
        double hitrate;
};