这是一个非常简单,但又容易被忽视的问题。希望会对不明白的同学有所帮助。
首先,C++的编译是以.cpp为单元的,在编译.cpp时,会先将include的头文件声明加进来,然后编译并生成用于后续链接所用的.obj文件。
编译期间,各个cpp之间是相互独立的(即不可见的),所以不要期望在一个cpp中include了头文件,就不用在其它cpp中再include了!
如果.cpp中有用到对当前cpp不可见的符号,就会出现编译错误,所以要确保所用的符号在当前cpp中有直接include或间接include。
首先,C++的编译是以.cpp为单元的,在编译.cpp时,会先将include的头文件声明加进来,然后编译并生成用于后续链接所用的.obj文件。
编译期间,各个cpp之间是相互独立的(即不可见的),所以不要期望在一个cpp中include了头文件,就不用在其它cpp中再include了!
如果.cpp中有用到对当前cpp不可见的符号,就会出现编译错误,所以要确保所用的符号在当前cpp中有直接include或间接include。