错误1错误C2143:语法错误:缺少';'在'<class-head>'之前

时间:2015-11-08 14:48:35

标签: c++ compiler-errors

你好我正在写一个IOManager,但是我收到了这个错误:

Error   1   error C2143: syntax error : missing ';' before '<class-head>'

我的代码是:

#pragma once
#include <vector>

class IOManager{
public:
    static bool readFileToBuffer(std::string filePath, std::vector<unsigned char>& buffer);
};

我不知道我做错了什么!

3 个答案:

答案 0 :(得分:4)

您使用std::string,但未包含<string>标头。将此行添加到顶部:

#include <string>

所以你会得到:

#pragma once

#include <string>
#include <vector>

class IOManager{
public:
    static bool readFileToBuffer(std::string filePath, std::vector<unsigned char>& buffer);
};

它应该有用。

答案 1 :(得分:1)

我在虚幻引擎的C ++代码中得到了这个。 这是因为我在课堂宣言结束时忘记了分号 在我的标题(.h)文件中。

class MyClass{
private: //Stuff here
public:  //Stuff here
}; //<--------DONT FORGET THE SEMICOLON

答案 2 :(得分:0)

嘿,我知道这已经得到了回答,但对于其他所有人来说,

我在浏览Youtube教程时遇到了同样的错误,可能与你的教程相同。我做了#include <string>,但它并没有为我解决错误。事实证明错误来自单独文件的最后一行(picoPNG.h):

#pragma once

#include <vector>

extern int decodePNG(std::vector<unsigned char>& out_image, unsigned long& image_width, unsigned long& image_height, const unsigned char* in_png, size_t in_size, bool convert_to_rgba32 = true)

我必须做的是在最后一行之后包括分号,所以它最终成为:

#pragma once

#include <vector>

extern int decodePNG(std::vector<unsigned char>& out_image, unsigned long& image_width, unsigned long& image_height, const unsigned char* in_png, size_t in_size, bool convert_to_rgba32 = true);

Ben导师最后会在以后的教程中修复这个bug。因此,请尝试检查您的其他标题文件,看看是否有任何地方没有使用分号。

希望这有助于某人!