C++ 在C+中创建多个动态分配的对象+;
对于那些比我聪明得多的人来说,还有一个问题: 我试图创建3个这样的玩家类实例: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;
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;
};