C ++:传递一个对象作为参数

时间:2018-05-07 19:25:07

标签: c++ class object

我只是想知道为什么这段代码没有编译:

#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()。

此致

1 个答案:

答案 0 :(得分:3)

你的方法:

void getPlayer(Player &player)

接受对Player类型的对象的左值引用,但是您正尝试将Player **传递给它,以修复编译错误,只需取消引用您的指针:

game->getPlayer(*player);

但是您的程序设计看起来不正确(将引用传递给调用getPlayer等的方法。)