限定符在类型为&的类型&的初始值设定项的绑定引用中丢失
我不明白此错误&无法找到任何信息。限定符在类型为&的类型&的初始值设定项的绑定引用中丢失
#ifndef GAME_H
#define GAME_H
#include <SFML/System.hpp>
#include <cmath>
#include "Submarine.h"
#include "Obstacle.h"
class Game : public Submarine
{
public:
Game(unsigned w,unsigned h,bool g);
void setKey(char Key='n');
void update(float dt);
void Render (const RenderWindow &Window) const ;
static bool Collision(sf::Sprite& object1, sf::Sprite& object2);
unsigned getWidth();
unsigned getHeight();
char getKey();
protected:
bool newGame;
unsigned width;
unsigned height;
char currentInput;
};
#endif
这里发生的错误;
void Game::Render(const RenderWindow &Window) const
{
sf::Sprite::Render(Window);
}
错误27错误C2664: 'SF ::雪碧::渲染':不能从 'const的SF :: RenderWindow的' 到 'SF ::的RenderTarget &' 转换参数1
sf::Sprite::Render
需要参考到非const,而Window
是const
的参考。 C++不允许这样的绑定,就这么简单。它会打破const-correctnes。
您可能想要参数为RenderWindow&
。
void Game :: Render(const RenderWindow&Window)const 我试图改变它,但是我仍然得到同样的错误,我在关于RenderWindow的头文件中改变了它。 – Gooseberry 2014-11-25 12:04:36
['sf :: Sprite :: Render(RenderTarget&)'](http://www.sfml-dev.org/documentation/1.6-fr/classsf_1_1Sprite.php#a2617aabe2aa9ce65f8f4eea8d2250bee)。我不熟悉SFML,但编译器错误通常不会说谎。您的问题没有足够的信息来说明问题所在。 – jrok 2014-11-25 12:05:48
void void :: Render(const RenderWindow&Window)const { \t sf :: Sprite :: Render(RenderTarget&); }' ' @jrok错误已经改变,但这是正确的吗? – Gooseberry 2014-11-25 12:21:41
你不能从'void Render(const RenderWindow&Window)const;'中移除'const'吗? – 2014-11-25 12:00:42