您的位置:首页 > 其它

两头文件相互包含,且内容相互引用问题

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
};
若相互包含,则有可能出现 未定义的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: