首页 > 解决方案 > 添加成员时,我的 SDL_Rect 结构出现错误 C3927、C3484、C3613、C3646、C2059 和 C2238

问题描述

我是 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);
}; 

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

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 行之间。

任何帮助都将不胜感激。

标签: c++oopheader-files

解决方案


为您的类编写一个构造函数。

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++。在尝试 SDL 之前,也许您应该先花一些时间学习 C++?这样,事情肯定会更顺利。你可以在这里找到书籍推荐。


推荐阅读