首页 > 解决方案 > 无法将参数 1 从 'sf::RenderWindow *' 转换为 'sf::RenderWindow &'

问题描述

我一直在用 SFML 制作游戏,但遇到了这个问题:

无法将参数 1 从 'sf::RenderWindow *' 转换为 'sf::RenderWindow &'

我知道指针和东西的基础知识,但我仍然不确定如何正确使用它们,所以我不知道这意味着什么。但无论如何,在游戏课上:

class Game {
public:
    RenderWindow renderWindow;
private:
    Player player{renderWindow,100,100 };
}

我初始化渲染窗口和播放器:

class Player
{
public:
   Player(RenderWindow &renderWindow,int x,int y) {
      draw(renderWindow,x, y);
}
      void draw(RenderWindow &renderWindow,int x,int y);
private:
     int x, y;
};

播放器.cpp:

void Player::draw(RenderWindow &renderWindow,int x,int y)
{
    //do stuff using renderWindow
}

而且我认为我应该使用引用调用构造函数,否则我会在 draw() 函数中遇到错误-它在被删除时无法引用。我也尝试过使用指针,但我不确定如何正确调用这个构造函数/函数。

标签: c++pointersconstructor

解决方案


推荐阅读