限定符在类型&的绑定引用中删除到const类型的初始化器

时间:2014-11-25 11:57:38

标签: c++

我不明白这个错误&找不到任何关于它的信息。

#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:&#39; sf :: Sprite :: Render&#39; :无法从&#39; const sf :: RenderWindow&#39;转换参数1 to&#39; sf :: RenderTarget&amp;&#39;

1 个答案:

答案 0 :(得分:2)

sf::Sprite::Render引用非const,而Window引用const。 C ++不允许这样的绑定,简单。它会破坏const-correctnes。

您可能希望将参数设为RenderWindow&