两头文件相互包含,且内容相互引用问题
2018-02-23 10:58
309 查看
//HEAD1.H #ifndef __HEAD_1_H__ #define __HEAD_1_H__ //防止多次包含,重复定义 #include "head2.h" #define VAR_MACRO 1 //define a macro, which used in head2.h bool func(ClassA* CA); //ClassA is defined in head2.h #endif
#ifndef __HEAD_2_H__ #define __HEAD_2_H__ //防止多次包含,重复定义 #include "head1.h" class ClassA{ int mVar; void setMem(){ mVar = VAR_MACRO }; //macro VAR_MACRO is defined in head1.h }; #endif
将以上两文件分别展开有:
HEAD1.hclass ClassA{
int mVar;
void setMem(){ mVar = VAR_MACRO }; // VAR_MACRO 未定义
... //other members and functions
};
#define VAR_MACRO 1 //define a macro, which used in head2.h
bool func(ClassA* CA); //ClassA is defined in head2.hHEAD2.h#define VAR_MACRO 1 //define a macro, which used in head2.h
bool func(ClassA* CA); //ClassA *CA未定义
class ClassA{
int mVar;
void setMem(){ mVar = VAR_MACRO }; //macro VAR_MACRO is defined in head1.h
... //other members and functions
};
若相互包含,则有可能出现 未定义的情况。
相关文章推荐
- 解决头文件相互包含问题的方法----超前引用
- 使用预声明解决结构体互相引用以及头文件内容互相包含的问题
- 解决头文件相互包含问题的方法----超前引用- -
- 两个不同的类相互引用的情况下头文件包含问题
- 两个不同的类相互引用的情况下头文件包含问题
- 使用预声明解决结构体互相引用以及头文件内容互相包含的问题
- 两个不同的类相互引用的情况下头文件包含问题
- 两个不同的类相互引用的情况下头文件包含问题
- 解决头文件相互包含问题的方法----超前引用- -
- 使用预声明解决结构体互相引用以及头文件内容互相包含的问题[转]
- 两个不同的类相互引用的情况下头文件包含问题
- 两个类相互包含引用的问题
- 两个类相互包含引用的问题--类前向声明
- VC++开发中解决头文件相互包含问题的方法
- C/C++ 中头文件相互包含引发的问题
- c++ Primer 5 12.1.6节练习 (头文件相互包含的问题及解决办法)
- 头文件相互包含的问题解决之
- 解决C/C++ 头文件相互包含 问题的方法
- Resource文件的相互引用与合并问题及其解决方案
- C++头文件相互包含问题的方法