关于命名空间在h和cpp文件中的不同用法

RabbitLBJ 2012-08-22 11:28:16
忘记是在那一本著作上面看到过,说在.h头文件中引入其他名字空间的类,一般使用
using OTHER_NS::CLASS_A;
using OTHER_NS::CLASS_B;
using OTHER_NS::CLASS_C;
这种用法

而在.cpp文件中,则可以直接
using namespace OTHER_NS;

书上说,这样可以最大限度的避免名字空间的互相污染,但是我忘了具体是哪本书?书上是怎么说的??
望高人指点,谢谢
...全文
564 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
RabbitLBJ 2012-08-22
  • 打赏
  • 举报
回复
我应该是在一本更高级的书上看到这个的,那里面详细讨论了这两种用法是使用环境
xingfeng2510 2012-08-22
  • 打赏
  • 举报
回复
貌似c++ primer中文第四版的第17章或是18章有讲到这一点。
xingfeng2510 2012-08-22
  • 打赏
  • 举报
回复
c++ primer上面就有讲。第一种写法称作using指示,后一种是using声明。
RabbitLBJ 2012-08-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
下面是一种using编译声明,声明使用命名空间具体资源如:CLASS_A
using OTHER_NS::CLASS_A;
using OTHER_NS::CLASS_B;
using OTHER_NS::CLASS_C;
而下面是一种using 编译指令,用户可以使用命名空间OTHER_NS里面的所有资源:
using namespace OTHER_NS;

楼主理解了吧,应该不……
[/Quote]

谢谢你的回答,其实这两种用法我是清楚的,我只是想知道那本书上面的详细解答,他解释的很详细,所以想问问有没有看过这本书的朋友,给个书名,我再重温下
seanxq 2012-08-22
  • 打赏
  • 举报
回复
using namespace std; // "using directive"

using std::cout; // "using declaration"

前者不适合在头文件中使用. 因为头文件会被包含在其它cpp文件中, 造成命名空间污染.
izhongshaowu 2012-08-22
  • 打赏
  • 举报
回复
下面是一种using编译声明,声明使用命名空间具体资源如:CLASS_A
using OTHER_NS::CLASS_A;
using OTHER_NS::CLASS_B;
using OTHER_NS::CLASS_C;
而下面是一种using 编译指令,用户可以使用命名空间OTHER_NS里面的所有资源:
using namespace OTHER_NS;

楼主理解了吧,应该不分.h或者.cpp都可以使用这两种声明,只是前者可以明确的编译进去所需要的内容。

RabbitLBJ 2012-08-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用楼主 的回复:
忘记是在那一本著作上面看到过,说在.h头文件中引入其他名字空间的类,一般使用
using OTHER_NS::CLASS_A;
using OTHER_NS::CLASS_B;
using OTHER_NS::CLASS_C;
这种用法

而在.cpp文件中,则可以直接
using namespace OTHER_NS;

书上说,这样可以最大限度的避免名字……
[/Quote]

什么意思??什么不对??
请明示
RabbitLBJ 2012-08-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用楼主 的回复:
忘记是在那一本著作上面看到过,说在.h头文件中引入其他名字空间的类,一般使用
using OTHER_NS::CLASS_A;
using OTHER_NS::CLASS_B;
using OTHER_NS::CLASS_C;
这种用法

而在.cpp文件中,则可以直接
using namespace OTHER_NS;

书上说,这样可以最大限度的避免名字……
[/Quote]

什么意思??什么不对??
请明示
退学者的游戏 2012-08-22
  • 打赏
  • 举报
回复
是的 其实就是把命名空间的污染降低到最少
飞天御剑流 2012-08-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
忘记是在那一本著作上面看到过,说在.h头文件中引入其他名字空间的类,一般使用
using OTHER_NS::CLASS_A;
using OTHER_NS::CLASS_B;
using OTHER_NS::CLASS_C;
这种用法

而在.cpp文件中,则可以直接
using namespace OTHER_NS;

书上说,这样可以最大限度的避免名字空间的互相污染,但是我……
[/Quote]
这里说的两种用法都不对。

65,189

社区成员

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

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