VC++ 关于include指令

2025-03-07 05:53:15
推荐回答(3个)
回答1:

首先,每个.h头文件中添加如下代码(包含整个文件)

#ifndef _A_H_ //这是a.h c.h就是_C_H_
#define _A_H_
//这里是原来的全部内容
.....
#endif //在文件最末

这样,能保证不重复包含,就算是你包含的比较乱,也不会出现重复定义。


其次,根据逻辑顺序包含。比如A派生于C,那么可以在A.H中直接先写上#include "c.h",之后就不用声明了。


最后,在A.CPP中使用B 和 B.CPP中使用A,都没有问题,这个只要CPP中定义包含顺序就可以了。

如果A B定义中互为友元,那么就需要采用.H中的声明或者包含方式,有了第一个定义,不怕循环包含。

回答2:

你这种情况经常会遇到,解决办法是,不用包含头文件而改用类申明,具体如下:对于A中用到B,可以这样,在a.h中用到B之前先进行申明class B; 在a.cpp中则可以#include, 对于B中使用A亦然

回答3:

.h的第一行,加上:
#pragma once

然后在需要的CPP里,每个引用需要的.H就是了...