#include应该放在namespace之内还是之外,有什么区别?

dcsarsen 2010-02-26 04:45:50
例如:
#include <vector>
using std::vector;

namespace ABC
{
......
}


namespace ABC
{
#include <vector>
using std::vector;
......
}
...全文
588 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dcsarsen 2010-02-27
  • 打赏
  • 举报
回复
看了各位大牛的高见,受益匪浅啊!
heguo2chao3 2010-02-26
  • 打赏
  • 举报
回复
下面那种方法有语法错误
namespace
{
}
花括号之间可以且只可以包括一下内容:

变量
常量
函数定义或者说明
结构体

模板
命名空间

至于#include 能否放里面 因为#include是简单复制头文件内容 只要你include 的头文件里面只有上面提到的那些内容 那么可以,如果除了这些还有其他内容 则不行,你的include<vector >给你打包票不止这些,所以会有编译错误
某某9 2010-02-26
  • 打赏
  • 举报
回复
最好放在之外
教材上都是这么写的
这样看起来也舒服点
shaotine_wu 2010-02-26
  • 打赏
  • 举报
回复
第一种放在外面的
#include <vector>
using std::vector; 那么它的作用域是从该命令出行的语句块开始到整个文件的结束,第二种的作用域是只是在局部命名空间ABC中有效
icansaymyabc 2010-02-26
  • 打赏
  • 举报
回复
最好放在之外
dskit 2010-02-26
  • 打赏
  • 举报
回复
引用 4 楼 fox000002 的回复:
按 lz 给的情况,#include <vector> 应该是放 ns 外面的

至于 using 倒是里外都可以


就是这样的
fox000002 2010-02-26
  • 打赏
  • 举报
回复
按 lz 给的情况,#include <vector> 应该是放 ns 外面的

至于 using 倒是里外都可以
hai040 2010-02-26
  • 打赏
  • 举报
回复
#include就是简单复制
放在namespace里有没错就看头文件里的内容了
yshuise 2010-02-26
  • 打赏
  • 举报
回复
第一个在ABC这个namespace之外也还起作用,比如还有BCD namespace
而第二个只在ABC这个名词空间起作用。
stardust20 2010-02-26
  • 打赏
  • 举报
回复
namespace ABC
{
#include <vector>
using std::vector;
......
}
这个好像编译都通不过。。

64,654

社区成员

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

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