C++ C++;:将对象作为参数传递
我只是想知道为什么这段代码不能编译:C++ C++;:将对象作为参数传递,c++,class,object,C++,Class,Object,我只是想知道为什么这段代码不能编译: #include <iostream> class Player { public: Player() { } }; class Game { public: Game() { } void getPlayer(Player &player) { } }; int m
#include <iostream>
class Player
{
public:
Player()
{
}
};
class Game
{
public:
Game()
{
}
void getPlayer(Player &player)
{
}
};
int main()
{
Game *game = new Game();
Player *player = new Player();
game->getPlayer(&player);
return 0;
}
#包括
职业选手
{
公众:
玩家()
{
}
};
班级游戏
{
公众:
游戏()
{
}
无效getPlayer(播放器和播放器)
{
}
};
int main()
{
游戏*游戏=新游戏();
Player*Player=新玩家();
游戏->获取玩家(&player);
返回0;
}
我想将player对象作为参数传递给Game类的getPlayer()方法
关于您的方法:
void getPlayer(Player &player)
接受对类型为Player
的对象的左值引用,但您正试图将Player**
传递给它,若要修复编译错误,只需取消对指针的引用:
game->getPlayer(*player);
但程序的设计看起来不正确(传递对名为
getPlayer
等的方法的引用)错误消息是什么?通常它会告诉你出了什么问题player
是player*
,所以当你通过&player
时,那就是键入player**
。无法绑定到Player&
。为什么要为此使用new
?将您的对象放在堆栈上,并根据需要通过引用传递。非常感谢Slava!是的,确实设计很快就完成了,因为我目前正在用SDL2编写一个游戏。我有一个对象引用的问题,所以我决定写一个小文件,以看看哪里可以纠正错误!