#include 放在何处?*.h还是*.cpp?

li190 2003-12-21 11:38:41
//bookstore.h
#include <string>
#include <iostream>
using namespace std;

string BookName = "CPP Primer";

//////////////////////////////////////////
//bookstore.cpp
//放在这里???
#ifndef BOOKSTORE_H
#define BOOKSTORE_H
#include "bookstore.h"
#endif

int main()
{
string myBook ;//= BookName;

cout << myBook << endl;
return 0;
}

假如把
#include <iostream>
using namespace std;

放在bookstore.cpp中也可以通过,严格说来放在哪里最好?如果主程序里面包括很多*.h文件,而每个*.h里面又有#include <iostream>声明,这样算不算重复?严格说来是否每个头文件的引用处都应该用#ifndef/#endif 来避免重复引用?


如果说得不清楚请指出,谢谢!
...全文
316 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
leechildren 2003-12-21
  • 打赏
  • 举报
回复
补充:
如果有许多头文件, 可以把共用的头文件, 诸如#include <iostream>等放在一个专门的头文件,比如系统自带的 “stdafx.h"中, 其它的头文件再包含这个头件 #include "stdafx.h"

此头文件也许要用#ifndef /#define /#endif 来修饰。
leechildren 2003-12-21
  • 打赏
  • 举报
回复
用以风格, 比较好
//bookstore.h中
#ifndef bookstore_h
#define bookstore_h

《头文件》

#endif //bookstore_h
////////////////////////////////////////////

//bookstore.cpp中
#include "bookstore.h"
.....
li190 2003-12-21
  • 打赏
  • 举报
回复
较正确的习惯和策略应该是那一个?:))
晨星 2003-12-21
  • 打赏
  • 举报
回复
都可以。
看你的习惯和策略了。
li190 2003-12-21
  • 打赏
  • 举报
回复
那对于<iostream>等库文件重复应用对于程序执行效率影响大么?是否需要用#ifndef/#endif 来避免重复引用?似乎一般的程序都没有写

mhcio(dreampursuer) :你的意思是否只要在cpp甚至main.cpp中用到的引用都可以“挪到”某个*.h中去注明(即使在*.h中用不到这个库文件),cpp文件里面不出现库引用为好?谢谢!
mhcio 2003-12-21
  • 打赏
  • 举报
回复
放在.h中不是很好吗,然后在.cpp中include" .h" 就行,省得在每个cpp中再不厌其烦的写#include<iostream> 和using namespace std 了
byyyyy 2003-12-21
  • 打赏
  • 举报
回复
是会重复的,一般放在.h中。你也可以放到.cpp里,那样你要用extern在.h中声明一下。
晨星 2003-12-21
  • 打赏
  • 举报
回复
我倾向于在CPP文件中引用,应为那样不相关的文件就可以不因用,如果在头文件中引用,那么所有引用该头文件的文件也都会引用,除非这是故意的(比如怕麻烦)。
antijpn 2003-12-21
  • 打赏
  • 举报
回复
重复引用当然不会有问题,顶多就是编译的时候多了那么一个判断而已

因为本身无论是C标准库还是C++的标准库在编写的时候就已经采用了条件编译,所以不会重复的包含同一个文件的

65,176

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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