3. 在b.h文件里面只是简单的先引入了类A的声明,而没有引入实体,这样就能解决头文件相互包含的问题,虽然这种问题很少见,某些问题的确有头文件相互包含的需求,所以这个问题一定要处理好。
2、两个类中互相使用了对方的指针,这样的情况很简单,分别在各自的头文件中声明一下使用的类, 而在各自的源文件中包含对方的头文件即可。(也可以根据情况1来解决) 这样就有效解决了头文件互相包含的问题。 参考资料:http://blog.sina.com.cn/s/blog_6e04a8350100sonp.html http://blog.csdn.net/yang_lang/...
这两个头文件互相包含,编译就是一大堆报错。这种写法是极其不合理的。 下面我们修改一下Work.h #pragma once //#include "State.h" //注释掉该头文件 class State; //增加该类对象的声明 class Work { public: Work(); ~Work(); void ClearCurrentState() { if (m_state) { delete m_state; m_sta...
这是因为头文件只能包含一次,可以用宏定义来解决这个问题。在你的Line和Point两个.h文件中分别加入下面的代码://Line.h#ifndef _LINE_H#define _LINE_H// 你自己的代码#endif//---// Point.h#ifndef _POINT_H#define _POINT_H// 你自己的代码#endif 其次,如果是VC,在这两个头文件最开...
C++头文件重复互相包含,假设有两个类A和B,分别定义在各自的有文件A.h和B.h中,但是在A中要用到B,B中也要用到A,代码如下://文件A.h中的代码 #pragma once #include "B.h" class B; class A { public: B* b; }; //文件B.h中的代码 #pragma once #include "A...