C++多文件编译,如果两个头文件都需要包含另一个头文件,而这两个头文件又要被第四个文件包含,怎么办
就有点类似于钻石继承(菱形继承)比如有a.hb.hc.h和d.h四个头文件其中,b和c需要#include"a.h"而d需要#include"b.h"#include"c...
就有点类似于钻石继承(菱形继承) 比如有 a.h b.h c.h和d.h四个头文件 其中,b和c需要#include"a.h" 而d需要#include"b.h" #include"c.h" 这样编译的时候肯定会报错,因为d包含了两次a.h,请问各位技术大牛这个情况该如何解决 #ifndef #define ... #endif对此并不起作用
展开
3个回答
展开全部
#ifndef #define ... #endif
应该可以的啊,你头文件要用大写的。用A_H别用a.h
应该可以的啊,你头文件要用大写的。用A_H别用a.h
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#ifndef #define ... #endif对此肯定起作用的(只要定义得当)。
理论上,同一个头文件#include多次是没关系的,只要头文件符合标准并使用了#ifndef #define ... #endif进行控制。
所以你应该是还有别的问题。
如果可以的话,我需要看一下你的各个头文件,才能确定具体的问题所在。
你先要确保:
#ifndef #define ... #endif格式正确:
#ifndef _A_XXXX_H_ /* 这个名称只要不重复是无所谓的 */
#define _A_XXXX_H_ /* 要和上面的一样 */
...
#endif
理论上,同一个头文件#include多次是没关系的,只要头文件符合标准并使用了#ifndef #define ... #endif进行控制。
所以你应该是还有别的问题。
如果可以的话,我需要看一下你的各个头文件,才能确定具体的问题所在。
你先要确保:
#ifndef #define ... #endif格式正确:
#ifndef _A_XXXX_H_ /* 这个名称只要不重复是无所谓的 */
#define _A_XXXX_H_ /* 要和上面的一样 */
...
#endif
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询