为什么有的include头文件放在.h中,有的放在.cpp中

beginners 2000-11-28 03:25:00
我刚接触VC,请问为什么include头文件有的放在.h中,有的放在.cpp中,还有的要专门放在stdafx.h中,该根据什么原则决定?谢谢
...全文
1137 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnNavigator 2000-11-29
  • 打赏
  • 举报
回复
因为.h文件是不需要编译的,一般不应该在其中包含其他的.h文件。所谓的使用未声明类型的问题,应该通过在包括此.h文件的.cxx文件中调整相应include的.h文件的顺序来解决。
xyzhao 2000-11-29
  • 打赏
  • 举报
回复
为什么不能在.h里include,有时这样做可以减轻很多劳动,比如在派生类的.h里经常要include的基类的.h,至于重复定义问题,只要加几个#ifdef完全可以解决,看看别人的.h
LiangFomu 2000-11-29
  • 打赏
  • 举报
回复
在.h文件中最好不要include可能会有重复定义的错误,特别是两个头文件相互include。
如果,只是用到另一个类的声明用Class 类名 即可。
eastsunli 2000-11-29
  • 打赏
  • 举报
回复
stadfx.h一般来说是不要动的,因为包括微软都认为是必须的
而。H和CPP文件内,是为拉编译时可以找到其相因的函数,不会报错的
你先不用管这些,好好学吧
alanlee 2000-11-29
  • 打赏
  • 举报
回复
主要是COM 需要取到实际的 CLSID 的完整资料
你可能见的最多的是COM下的应用吧
sunyanbiao_12 2000-11-28
  • 打赏
  • 举报
回复
可以定义两个类成员变量为公共成员,然后在主函数中定义两个类对象,在进行付值。如:
class a
{public:int i=10;
.....
}
class b
{public:int j;
.....
}
main()
{a a1;b b1;
b1.j=a1.i;
.......
}
ssrrll 2000-11-28
  • 打赏
  • 举报
回复
如果两个类相互有对方类型的成员变量,又该如何?
leer 2000-11-28
  • 打赏
  • 举报
回复
只要记住一个原则,那就是在C++中变量和函数在使用之前一定要声明,而头文件正是声明的地方。也就是说,如果你的文件中用到了其它的文件中声明的函数或类就要包含这个文件。
happylaodu 2000-11-28
  • 打赏
  • 举报
回复
这个好像说不太清,根据我的经验,放在"A.h"中"B.h"的一般是因为A类中有成员变量是B类的。
而在A.CPP中加B.h,一般是因为A类的某个成员函数要访问B类的函数或要建一个
B类的对象(或指针)。
放到Stdafx.h中的好像很少,一般用户自己的类头文件不会放到这里面。按MFC中的说法,这里面放的是使用频繁但很少更改的文件。如果不是每个类都要引用,则不用放到这里面来。




U皮特U 2000-11-28
  • 打赏
  • 举报
回复
一个简单的原则:项目中所有文件都要用到的头文件放在stdafx.h中,仅在某个.cpp文件中用到的头文件放在.cpp文件中,.h文件中要用到的类型定义、类定义的头文件放在.h文件中。
luxes 2000-11-28
  • 打赏
  • 举报
回复
一般应放在cpp里,不过如果你在h文件的某处声明里用到了另一个h文件,就得include一下了。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧