如何在结构中声明类

How can I declare a class in my structure?

本文关键字:声明 结构      更新时间:2023-10-16

这是我的.hpp

class playerBat
{
    public:
        playerBat(int x, int y);
        sf::RectangleShape *getShape();
        void setShape(sf::RectangleShape *Shape);
    private:
        sf::RectangleShape shapeBat;
};
typedef struct s_game_elements
{
    playerBat playerOne(int, int);
    playerBat playerTwo(int, int);
} t_game_elements;

这就是我初始化它的方式:

t_game_elements gameElements;
playerBat playerBatOne(0, 200);
playerBat playerBatTwo(790, 200);
gameElements.playerOne = playerBatOne;
gameElements.playerTwo = playerBatTwo;

但编者说:

src/main.cpp:14:18: error: reference to non-static member function must be called gameElements.playerOne = playerBatOne;

我做错了什么?很抱歉,如果这是非常明显的事情,但我最近开始学习CPP,我在C.中从未出现过这个错误

您的意思似乎是以下

typedef struct  s_game_elements
{
    playerBat   playerOne;
    playerBat   playerTwo;
}

否则,在这个typedef声明中,结构有两个函数,而不是playerBat 类型的数据成员

typedef struct  s_game_elements
{
    playerBat   playerOne(int, int);
    playerBat   playerTwo(int, int);
}

考虑到存在拼写错误

t_game_elements gameElements;
^^^

早期typedef声明中的typedef名称看起来像

s_game_elements
^^^