C++中include其他头文件时何时应放在.h文件中,何时应放在.cpp文件中?
在后台看代码时有时候不清楚a.cpp源代码中一个函数的用法,但是在a.cpp最前面include的头文件中却找不到该函数的定义,还需要到a.h代码的前面去查看相关文件,感...
在后台看代码时有时候不清楚a.cpp源代码中一个函数的用法,但是在a.cpp最前面include的头文件中却找不到该函数的定义,还需要到a.h代码的前面去查看相关文件,感觉这样看代码效率不高。
在a.h与a.cpp的前面都能include很多头文件,要养成良好的编程习惯和让代码具有较高的可读性,这些头文件include在a.h还是a.cpp中有什么规律吗?
我目前只是觉得a.h中如果include太多头文件可能会对编译效率有点影响。哪位高手有真知灼见,望赐教。 展开
在a.h与a.cpp的前面都能include很多头文件,要养成良好的编程习惯和让代码具有较高的可读性,这些头文件include在a.h还是a.cpp中有什么规律吗?
我目前只是觉得a.h中如果include太多头文件可能会对编译效率有点影响。哪位高手有真知灼见,望赐教。 展开
4个回答
展开全部
.h是 头文件
.cpp 是源文件
c++中。通常 将
struct class #define typedef function 等的定义放到头文件中
而将 成员声明 和 function实现 类实现 放入cpp中
h和cpp中同时可以使用include包含头文件,但是我们通常 有这个习惯
也就是尽量不要在。h中include非必须的其他。h
也就是说
当.h中的 定义 内容 用到了T* t那么我们 没有必要 #include "t.h"之需要在。h中 class T;声明一下 即可。
当 。h中用到了T t;也就是 非指针时,此时可以在.h中 include "t.h"
以上均是书写规范问题。当然所有的.h都include进来也不会编译错。
至于为什么有这个书写规范 就需要 你再仔细理解 一下c++接口设计了。也就是说 如果你的。h作为一个模块给别人使用时 没有必要 把 没有用的。h同时提供给别人。
至于编译速度的话 ide有优化的。你没有用到的东西他不会编译进去的。
.cpp 是源文件
c++中。通常 将
struct class #define typedef function 等的定义放到头文件中
而将 成员声明 和 function实现 类实现 放入cpp中
h和cpp中同时可以使用include包含头文件,但是我们通常 有这个习惯
也就是尽量不要在。h中include非必须的其他。h
也就是说
当.h中的 定义 内容 用到了T* t那么我们 没有必要 #include "t.h"之需要在。h中 class T;声明一下 即可。
当 。h中用到了T t;也就是 非指针时,此时可以在.h中 include "t.h"
以上均是书写规范问题。当然所有的.h都include进来也不会编译错。
至于为什么有这个书写规范 就需要 你再仔细理解 一下c++接口设计了。也就是说 如果你的。h作为一个模块给别人使用时 没有必要 把 没有用的。h同时提供给别人。
至于编译速度的话 ide有优化的。你没有用到的东西他不会编译进去的。
展开全部
查看函数定义 直接用右键菜单,转到定义不就可以了?
大型工程个人基本都这样看,一般习惯包含在。h中。
还有一点,VS都有如下定义
#ifndef _XX_
.h头文件,类声明
#define _XX_
#endif
这样保证了一个.H文件只被编译一次
大型工程个人基本都这样看,一般习惯包含在。h中。
还有一点,VS都有如下定义
#ifndef _XX_
.h头文件,类声明
#define _XX_
#endif
这样保证了一个.H文件只被编译一次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般为了实现信息的隐藏,通常会把整个类封装到一个头文件中。而在主函数main所在文件中就在开始处包含进来这个头文件。include那里头文件添加与否只是与是否使用相应库或类的函数和变量有关。
参考资料: 如果您的回答是从其他地方引用,请表明出处
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得在.h头文件中写入要用到的类的声明,在.cpp文件中包含头文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询