[英]cannot convert argument 1 from 'sf::RenderWindow *' to 'sf::RenderWindow &'
我一直在用 SFML 制作游戏,但遇到了这个问题:
无法将参数 1 从 'sf::RenderWindow *' 转换为 'sf::RenderWindow &'
我知道指针和东西的基础知识,但我仍然不确定如何正确使用它们,所以我不知道这意味着什么。 但无论如何,在游戏 class 中:
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() 函数中遇到错误-它在被删除时无法引用。 我也尝试过使用指针,但我不确定如何正确调用这个构造函数/函数。
标记 & 表示引用,而 * 表示指针。 您正在尝试将指针传递给需要引用的 function。 简单地改变
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;
};
至
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;
};
和
void Player::draw(RenderWindow &renderWindow,int x,int y)
{
//do stuff using renderWindow
}
至
void Player::draw(RenderWindow *renderWindow,int x,int y)
{
//do stuff using renderWindow
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.