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编写一个游戏。我有一个对象引用的问题,所以我决定写一个小文件,以看看哪里可以纠正错误!