假设我有文件a.cpp b.cpp和文件ch两个cpp文件都包含ch文件.头文件包含一堆const int定义,当我编译它们时,我没有错误,但我可以访问这些const,就像它们是全局变量一样.所以问题是,如果我有多个const定义以及这些const int具有类似全局的范围,为什么我不会得到任何编译错误?
我在自己的文件中有一个名为GameState的类,该类有一个指向另一个StatusView类型对象的指针,该对象位于自己的文件中.在GameState.h中,我已经包含了StatusView标头,但是当我尝试编译它时,我收到错误:
missing type specifier - int assumed
Run Code Online (Sandbox Code Playgroud)
但是,当我在包含它之后转发声明StatusView时,我能够编译它.我不知道是什么导致要求转发声明类.
struct MyStruct {
int x;
};
MyStruct theVar;
theVar.x = 10;
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么编译器会给我错误:
错误:'theVar'没有命名类型