我的 SDL_Rect 结构在添加成员时出现错误 C3927、C3484、C3613、C3646、C2059 和 C2238

My SDL_Rect struct gives me errors C3927, C3484, C3613, C3646, C2059 and C2238 when adding members

我是 SDL 的新手,我显然遇到了困难,但经过一番研究后我能够解决它们。但这是我自己无法解决的另一个问题。这可能看起来很愚蠢,但我真的不知道哪里出了问题。

我正在尝试为我希望在屏幕上呈现的其中一张图像创建一个 SDL_Rect 结构。我希望它能完美无缺,因为我从几个网站仔细检查过它,我非常有信心我知道该怎么做。您将看到的只是我的头文件,如果它不足以解决问题,我会添加其他信息。

#include <SDL.h>
#include <string>

using namespace std;

class GeneralStuff
{
public:
    bool quit;
    SDL_Renderer* renderer = NULL;

    // steve is 445 x 741, with no good LCM, in case you forget future me

    SDL_Rect steve;

    steve.x = 300;
    steve.y = 150;
    steve.w = 445;
    steve.h = 741;

    void QuitCheck();
    void init();
    SDL_Texture* load_image(SDL_Texture* the_texture, string path);
}; 

然后我分别收到了 Steve 的每个成员的这些错误:

1>C:\Users\SecretName\Downloads\CodingJeff\SDL_Test\SDL_Project\GeneralStuff.h(17,7): error C3484: syntax error: expected '->' before the return type
1>C:\Users\SecretName\Downloads\CodingJeff\SDL_Test\SDL_Project\GeneralStuff.h(17,10): error C3613: missing return type after '->' ('int' assumed)
1>C:\Users\SecretName\Downloads\CodingJeff\SDL_Test\SDL_Project\GeneralStuff.h(17,10): error C3646: 'x': unknown override specifier 
1>C:\Users\SecretName\Downloads\CodingJeff\SDL_Test\SDL_Project\GeneralStuff.h(17,10): error C2059: syntax error: '='
1>C:\Users\SecretName\Downloads\CodingJeff\SDL_Test\SDL_Project\GeneralStuff.h(17,15): error C2238: unexpected token(s) preceding ';'

我很绝望,尝试从教程中复制粘贴并得到相同的结果。我正在使用 Visual Studio 2019,每个“史蒂夫”下面都有红色卷线(表示错误的那条),除了第一个(第 15 行)之外,他旁边有一个点。我还没有对 Steve 做任何事情,因为我被错误吓坏了,没有它它工作得很好,所以我希望错误在第 14 行和第 21 行之间。

非常感谢任何帮助。

为您的class编写构造函数。

class GeneralStuff
{
public:
    GeneralStuff()
    {
        steve.x = 300;
        steve.y = 150;
        steve.w = 445;
        steve.h = 741;
    }
    bool quit;
    SDL_Renderer* renderer = NULL;

    // steve is 445 x 741, with no good LCM, in case you forget future me

    SDL_Rect steve;
    ...
};

这是基本的 C++。或许您应该先花一些时间学习 C++,然后再尝试 SDL?这样事情肯定会更顺利。您可以找到书籍推荐 here