类型绑定引用中的限定符和 const 类型的初始值设定项中删除

qualifiers dropped in binding reference of type & to initializer of type const

本文关键字:类型 删除 绑定 引用 const      更新时间:2023-10-16

我不明白这个错误,也找不到任何信息。

#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::精灵::渲染":无法将参数 1 从"const sf::RenderWindow"转换为"sf::RenderTarget &"

sf::Sprite::Render引用了non-const,而Window引用了const。C++不允许这样的绑定,就这么简单。它会打破常量校正。

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