我只是想知道为什么这段代码没有编译:
#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;
}
我想将播放器对象作为参数传递给Game类的方法getPlayer()。
此致
答案 0 :(得分:3)
你的方法:
void getPlayer(Player &player)
接受对Player
类型的对象的左值引用,但是您正尝试将Player **
传递给它,以修复编译错误,只需取消引用您的指针:
game->getPlayer(*player);
但是您的程序设计看起来不正确(将引用传递给调用getPlayer
等的方法。)