我无法访问基类的功能

-4 c++ inheritance sprite sfml

目前,我正在学习c ++而且只是为了好玩,我想编写一个小型国际象棋游戏(当然没有AI).我使用visual studio社区,SFML 2.5作为渲染器和图形对象.我试图为所有数字制作一个名为"数字"的模型.所以我有一个继承自sfml sprite(一个drawable)和一个从该图继承的pawn类fe的figure类.Sf :: sprite - > figure-> pawn/queen/tower等...但由于某种原因,我不能将pawn用作精灵,例如,我无法使用windowRenderer的draw函数绘制它.但是函数文档说它需要一个可绘制的对象.我收到一条错误消息,上面写着:基类中无法访问的对话无效.我做错了什么或是不可能使用像这样的精灵.这是我的构造函数,因为我认为我最有可能在那里犯了一个错误.到目前为止我只用java编码所以分离到头文件和实现文件对我来说有点陌生,构造函数语法也不同.

figure.h:

class figure : sf::Sprite {
public:
    figure(int startPosition);
    void changeImage(std::string);
    void dissapear();
    void loadImage(std::string);
private:
    sf::Image img;
};


figure.cpp:

figure::figure(int startPosition):sf::Sprite(){

}


pawn.h:

class pawn :
    public figure
{
public:
    pawn(int startPosition);
    ~pawn();

private:
    void move(bool canBeat, bool isAsStart);
};


pawn.cpp:
pawn::pawn(int startPosition):figure (startPosition)
{

}


in main.cpp:

pawn pawn1(position);
sf::RenderWindow window(sf::VideoMode(sets.windowX, sets.windowY), "frame");
window.draw(pawn1);
Run Code Online (Sandbox Code Playgroud)

joh*_*ohn 6

试试这个

class figure : public sf::Sprite
Run Code Online (Sandbox Code Playgroud)

默认情况下,类的继承是私有的.