我有一个包含多个文件的项目,其中包括main.cpp和两个 header 。这两个 header 在类名声明的行中都有错误。整体上构建任何文件或项目均不会产生任何错误或警告。程序本身正常运行。
我正在使用CodeLite IDE和GCC编译器。
发生这种行为的原因可能是什么,将来会导致任何问题吗?

#include <Creature.h>
#include <Party.h>

int main() {
    // Does something with the stuff from header files.
    return 0;
}
内部Creature.h:
#pragma once

class Creature { // Error: expected ';' after top level declarator
    // something
};
Inside Party.h:
#pragma once

class Party { // Error: expected identifier or '('
    // something
};

最佳答案

您的IDE认为头文件是用C编写的(其中class不是关键字,因此Creature是声明符),因为您给了它们常规的扩展名 .h 来表明这一点。不要那样做:对C++头文件使用.hh.hpp.hxx,这样工具(和人类)就可以知道自己在写什么,而不必了解文件。

10-05 22:58