社区
工具平台和程序库
帖子详情
关于名字空间的问题
ftkghost
2004-09-23 12:48:12
声明名字空间用:
using namespace 名字空间名;
如果有两个名字空间nasp1,nasp2,名字空间中有同样名字的变量value;
如果我在程序中引用变量value;
using namespace nasp1;
using namespace nasp2;
下面引用变量value;
那编译器怎么知道在哪个名字空间?
是不是一定要用nasp1::value或nasp2::value来表明?
...全文
123
12
打赏
收藏
关于名字空间的问题
声明名字空间用: using namespace 名字空间名; 如果有两个名字空间nasp1,nasp2,名字空间中有同样名字的变量value; 如果我在程序中引用变量value; using namespace nasp1; using namespace nasp2; 下面引用变量value; 那编译器怎么知道在哪个名字空间? 是不是一定要用nasp1::value或nasp2::value来表明?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sharkhuang
2004-09-23
打赏
举报
回复
所以要有类似xml的名字空间的所写定义就好了。
qw2002qw
2004-09-23
打赏
举报
回复
大家已经说得很清楚了
aryak
2004-09-23
打赏
举报
回复
大家已经说得很清楚了
freshairfly
2004-09-23
打赏
举报
回复
同意楼上所说的
这和Java里的包的概念很像
当引入两个包(这里就是namespace)里有相同的元素时,需要在元素前加包名来修饰,否则就会ambigious
dot99
2004-09-23
打赏
举报
回复
还有,我个人觉得应该少使用uising namespace, 除非在有必要的时候,
namespace 像我写的一样变态
typedef ACTION_CODE::DATA_T::_MSG_DATA::_RULE_DATA RULE_DATA_T;
dot99
2004-09-23
打赏
举报
回复
namespace A {
int a;
}
namespace B {
int a;
}
using namespace A;
using namespace B;
//目前为止,正确
但是
a = 10; //二义性错误,使用变量不明确
这个时候,应该明确的指出namespace
A::a
或者
B::a
whyglinux
2004-09-23
打赏
举报
回复
>> 楼上的意思是不是当我使用using namespace时,所有声明的名字空间中的变量,函数,类等都类似在一个源文件中,同名变量造成污染?
就是这个意思。这样的话,对于同一个名子,编译器就不知道是哪一个库中的名子了。
dot99
2004-09-23
打赏
举报
回复
下面引用变量value;
那编译器怎么知道在哪个名字空间?
编译器会报告错误~~~~
二义性
roy
2004-09-23
打赏
举报
回复
系统区分不出,一定要加上域限定符
nasp1::value
nasp2::value
ftkghost
2004-09-23
打赏
举报
回复
楼上的意思是不是当我使用using namespace时,所有声明的名字空间中的变量,函数,类等都类似在一个源文件中,同名变量造成污染?
whyglinux
2004-09-23
打赏
举报
回复
对。这种情况下不能使用 using namespace 名字空间名;这种声明形式,因为它会把名子空间中所有的名子都会引入进来。如果两个名子空间中有相同的名子,就会造成冲突。
insulator
2004-09-23
打赏
举报
回复
如果你想在一段中使用一个名字空间可以直接在前面用using namespace nasp1;
如果想在这段程序中使用其它名字空间的变量时就要nasp2::value
C++ 名称空间
名字空间
(英语:Namespace),也称命名空间、名称空间等,它表示着一个标识符(identifier)的可见范围。一个标识符可在多个
名字空间
中定义,它在不同
名字空间
中的含义是互不相干的。这样,在一个新的
名字空间
中可...
关于XML名称空间(命名空间)
名称空间的作用? 为了解决不同领域的XML词汇的同名冲突和区分识别。(参考底下的示例) 注意:名称空间只存在逻辑意义,无法真正实现对URI的引用。 名称空间的声明: 放在元素(一般是根元素)的起始标签内,...
C++ 命名空间,也有叫名称空间
为了避免在大规模程序设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/
名字空间
/名称空间/名域),可以更好地控制标识符的作用域。 std是c++标准命名...
C++中的
名字空间
和作用域
C++中的
名字空间
和作用域 C++程序支持四种形式的作用域,分别是: ①:
名字空间
作用域 ②:局部作用域 ③:类作用域 ④:语句作用域
名字空间
作用域:就是程序员利用
名字空间
定义在C++程序中划分出来的一块...
【C++】
名字空间
(解决名字冲突
问题
二)
目录
名字空间
定义
名字空间
使用 ...解决名字冲突
问题
的究极解决方法:namespace(
名字空间
) 语法为: namespace XXX { //把类和函数写在这个大括号里面 class YYY { }; } //这里不需要加...
工具平台和程序库
24,855
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章