找到问题所在,但是不明白原因,请大家帮我看看
当我在CMyView.h里面声明 class CMyDialog后
为什么还要在CMyView.cpp里面包含头文件CMyDialog.h,为什么不直接在CMyView.h里面包含头文件CMyDialog.h,这样做有什么好处?
问题点数:0、回复次数:6Top
1 楼fuxf(布衣)回复于 2003-12-04 17:35:53 得分 0
不在CMyView.cpp里面包含头文件CMyDialog.h,则编译器找不到CMyDialog这个东东
包含在CMyView.h其效率不及在.cpp中高Top
2 楼LoverOfVCpp(VCpp爱好者)回复于 2003-12-04 23:50:20 得分 0
应该在在CMyView.h里面包含头文件CMyDialog.h也可以,这只是个人习惯问题。Top
3 楼Behard(我爱天安门)回复于 2003-12-05 00:29:21 得分 0
这个是使预编译更有效Top
4 楼cllr(寂寞2001)回复于 2003-12-05 01:19:24 得分 0
如果你在.h中包含的话,要注意循环包含的问题,就是A类.h包含B类.h,B类.h包含A类.h,这样编译时就会提醒你找不到声明。如果你循环包含了,就需要在.h中加class X;Top
5 楼blue2moon(蓝狐)回复于 2003-12-05 08:54:00 得分 0
一般来讲,我都是将*.h包含在.cpp里面,具体原因还没研究!Top
6 楼Bandry(菜鸟-舍我其谁)回复于 2003-12-05 11:12:27 得分 0
在.h里面包含头文件,如果你包含的那个头文件的类的实现改变了,则与它相关的类都要重新编译,这样增加了你的程序编译时间;而如果在.h里面使用提前声明,而在.cpp里面包含该类头文件,则每次改变包含类的实现时,只需重新编译改变的那个类,其他包含该类的cpp都无需重新编译,节省了编译时间Top




