解决头文件互相包含的情况
情况
比如说A需要include B,B需要include C,C还需要include A,这样形成环状必然会导致编译器报错
方法1
在环的最后一处进行声明而不是include
A.h
#include "B.h"
xxx
B.h
#include "C.h"
xxx
C.h
class A;
在这里声明我们要用A,而A的头文件我们反正在其他地方已经include了。这样的话是可以通过编译的
方法2
尽量少在.h文件中进行include,除非是实在避免不了(有一些继承等关系在)。我们如果只是使用它的一些方法就只需要在.cpp文件中include即可。
额外补充
在头文件开始时可以使用 #pragma once
,这可以解决一种情形:
这是用来解决重复包含的问题,和上文提到的循环包含有所不同。