名字空间

酱油党 2011-11-16 01:08:06
自定义名字空间:

namespace MySpace
{
//内部写了一堆定义的函数
}

问:
1:这么写于没有封在namespace中有什么区别
2:这么写跟把函数封装在class中有什么区别
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xhjbeidoulong 的回复:]
1. 封在namespace中, 你就要使用MySpace::xxx才能访问到,
当然你在使用前用:using namespace MySpace;后,就可以直接访问了;

这样的好处是, 防止命名冲突, 如:
你用了某第三方库1,定义了一个func1, 然后又用了第三方库2,它也定义了一个func1,
如果没有命名空间,那你就麻烦了,只能放弃一个库,
而只要其中一……
[/Quote]

受教了
七擒关羽 2011-11-16
  • 打赏
  • 举报
回复
1L基本都是正确的,重要的是作用域,与全局变量命名对比就知道了
xhjbeidoulong 2011-11-16
  • 打赏
  • 举报
回复
1. 封在namespace中, 你就要使用MySpace::xxx才能访问到,
当然你在使用前用:using namespace MySpace;后,就可以直接访问了;

这样的好处是, 防止命名冲突, 如:
你用了某第三方库1,定义了一个func1, 然后又用了第三方库2,它也定义了一个func1,
如果没有命名空间,那你就麻烦了,只能放弃一个库,
而只要其中一个用了namespace,你就可以这样:::func1(没有命名空间的), namespace::func1(有命名空间的)


2. 命名空间和类不是一回事, 命名空间是可以把:类名,对象名等,划分到一个名字空间中去。
而类是一组数据和对这些数据的操作(函数)的封装;

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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