社区
非技术区
帖子详情
什么是命名空间?
winxieddd
2002-03-18 05:59:03
哎 ̄ ̄谁给小弟解释一下呢?
...全文
107
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
ROS之
命名空间
已经学ROS快两个月了,一开始对ROS
命名空间
,参数,参数服务器,重映射没认真看,后来发现很重要,它是学习ROS代码的基础。我们都知道ros以topic通信,但是只靠topic通信是远远不够的,于是使用客服端服务器、actionlib、参数服务器来补充,这几种都是通信的机制。但还不够,为了方便又加入了
命名空间
,重映射。只有清楚了这些,其实才算对ros有了初步了解,下面的几个文章我将分别介绍。
C++
命名空间
:默认
命名空间
与匿名
命名空间
3.C++默认
命名空间
(1)又叫全局
命名空间
(2)默认
命名空间
引用其他
命名空间
方法 (3)默认
命名空间
引用自己的方法 (4)其他
命名空间
引用默认
命名空间
中的方法::f(); 4.C++匿名
命名空间
1.3.4.1、std和cout的引入 (1)std是C++标准库定义好的一个namespace (2)cout是std这个namespace下的一个标准输出工具,类似于C中的printf (3)用法示例 1.3.4.2、匿名
命名空间
的定义和使用 (1)定义 (2)匿名
命名空间
中引用其他
命名空间
中的方法 (3
SystemVerilog基础:八种
命名空间
(定义
命名空间
、包
命名空间
、编译单元域
命名空间
、文本宏
命名空间
、模块
命名空间
,块
命名空间
、端口
命名空间
、属性
命名空间
)详解(上)
SystemVerilog有八个标识符
命名空间
:其中两个是全局的(定义
命名空间
和包
命名空间
),两个是对于编译单元(compilation unit)全局的(编译单元域
命名空间
和文本宏
命名空间
),四个是本地的(模块
命名空间
,块
命名空间
。端口
命名空间
和属性
命名空间
)。
什么是
命名空间
C++中引入
命名空间
的主要是为了处理程序中常见的命名冲突,它是由ANSIC++引入的可以由用户命名的作用域。所谓
命名空间
,实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个
命名空间
中,从而与其它全局实体分隔开来。如: namespacens//指定
命名空间
ns { inta; doubleb; } ...
SystemVerilog基础:八种
命名空间
(定义
命名空间
、包
命名空间
、编译单元域
命名空间
、文本宏
命名空间
、模块
命名空间
,块
命名空间
、端口
命名空间
、属性
命名空间
)详解(下)
SystemVerilog基础SystemVerilog有八个标识符
命名空间
:其中两个是全局的(定义
命名空间
和包
命名空间
),两个是对于编译单元(compilation unit)全局的(编译单元域
命名空间
和文本宏
命名空间
),四个是局部的(模块
命名空间
,块
命名空间
、端口
命名空间
和属性
命名空间
)。
非技术区
15,445
社区成员
58,111
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章