什么是命名空间?

winxieddd 2002-03-18 05:59:03
哎 ̄ ̄谁给小弟解释一下呢?
...全文
32 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuicai 2002-03-19
  • 打赏
  • 举报
回复
解释得都挺好哈。up。
hucong 2002-03-19
  • 打赏
  • 举报
回复
不好意思,少了一句。
using namespace zhangcun;

另外需要指明的是例子如下

#include "zhangcun.h"
#include "wangcun.h"

using namespace zhangcun;
using namespace wangcun;

void main()
{
lisan ls;//error
zhangcun::lisan ls;//right
}
hucong 2002-03-19
  • 打赏
  • 举报
回复
winxieddd(一剑飘香)

是的,没错的。不过还有一种情况是例外的
假设zhangcun在zhangcun.h文件,wangcun在wangcun.h中

#include "zhangcun.h"
void main()
{
lisan ls;//这里就没有问题,不会有冲突,直接是指zhangcun的lisan
}

但是入骨你同时包含了这两个文件,你就需要区分到底是哪个了lisan了
dot99 2002-03-18
  • 打赏
  • 举报
回复
hucong(stupid urchin)
的解释好啊
winxieddd 2002-03-18
  • 打赏
  • 举报
回复
To: hucong(stupid urchin)

那么是不是说,要访问zhangcun的class lisan,就要用

zhangcun::lisan ls;
//或者
using namespace zhangcun;
lisan ls;
?????



ziqiriying 2002-03-18
  • 打赏
  • 举报
回复
是为了解决名字污染的问题
比如standard c++
所有的类库,函数都封装在一个叫 std 的 namespace 中
要使用必须
using namespace std;
kaitty 2002-03-18
  • 打赏
  • 举报
回复
打个比方,在一个class中的成员变量只能在本类中才可见,
别的类要访问必须通过本类才能访问。
另外,不同的类就算有相同名字 的成员变量也不会产生冲突。
类在某种程度上跟namespace有相似。
hucong 2002-03-18
  • 打赏
  • 举报
回复
名字空间嘛,打个比喻吧,张村有个叫李三,王村也有个李三.现在上级要到李三家去,那你肯定得要知道,是到张村找,还是到王村找呢?这里得张村和李就相当于名字空间:用c++描述为

namespace zhangcun
{
class lisan:public people
{
//.....
};
}

namespace wangcun
{
class lisan:public people
{
//.....
};
}

void main()
{
using namespace wangcun;
lisan ls;
//或者
wangcun::lisan ls;
}
arthor 2002-03-18
  • 打赏
  • 举报
回复
是一个名字的集合,目的是防止重名的。
不同名字空间中可以使用相同的名字。
xiaott 2002-03-18
  • 打赏
  • 举报
回复
我也想知道!!!!!1

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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