2014-11-25 62 views
0

我不明白此错误&无法找到任何信息。限定符在类型为&的类型&的初始值设定项的绑定引用中丢失

#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

+0

你不能从'void Render(const RenderWindow&Window)const;'中移除'const'吗? – 2014-11-25 12:00:42

回答

2

sf::Sprite::Render需要参考到非const,而Windowconst的参考。 C++不允许这样的绑定,就这么简单。它会打破const-correctnes。

您可能想要参数为RenderWindow&

+0

void Game :: Render(const RenderWindow&Window)const 我试图改变它,但是我仍然得到同样的错误,我在关于RenderWindow的头文件中改变了它。 – Gooseberry 2014-11-25 12:04:36

+0

['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

+0

void void :: Render(const RenderWindow&Window)const { \t sf :: Sprite :: Render(RenderTarget&); }' ' @jrok错误已经改变,但这是正确的吗? – Gooseberry 2014-11-25 12:21:41

相关问题