C++能同时using两个命名空间吗?

我在主函数里,同时usingnamespacestd;usingnamespaceme;“me”是我自己定义的命名空间。就是这两句写在一起,如果两个命名空间存在相同的函数... 我在主函数里,同时
using namespace std;
using namespace me;
“me”是我自己定义的命名空间。就是这两句写在一起,如果两个命名空间存在相同的函数,这样是不是会有冲突的啊?
展开
 我来答
Bk0X
推荐于2017-11-25 · TA获得超过9413个赞
知道小有建树答主
回答量:1217
采纳率:60%
帮助的人:669万
展开全部
正确!

一般来说好的编程风格是不会使用using namespace 这样的格式的.
尤其是在拥有多个命名空间的时候. namespace 本来就是为了解决命名冲突而设立的~
好的用法是只using具体的函数名或者类名, 必要时写上全名以强调.

using std::vector;
using std::cout;
using std::cin; // 仅单独using特定的名称简写.

me::cout << "xx";
std::cout << "xx"; // 有歧义后或者有误导性的地方, 使用全名来区分, 不要用简写.

这些细节都是区分一个程序员是否足够专业的标志.
金色潜鸟
2012-08-16 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5688万
展开全部
如果两个命名空间存在相同的函数或变量,会有冲突。有错误信息 “ambiguous symbol” 出现。
如果你想用 指定的 一个空间 的某个 同名函数或变量,你可以加以限定。例如:

#include <iostream>
using namespace std;
namespace first
{
int x = 5;
int y = 10;
}
namespace second
{
double x = 3.1416;
double y = 2.7183;
}
int main () {
using first::x; //用第一个的x
using second::y; //用第2个的y
cout << x << endl; // x 是第一个的
cout << y << endl; // y 是第2个的
cout << first::y << endl; // 限定第一个的y
cout << second::x << endl; // 限定第2个的x
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-16
展开全部
使用using namespace XXX;这样是可以的,但是最好的办法是在需要的时候使用域作用符::来灵活得限制,这样可以增加易读性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wchyumo2011
推荐于2018-03-10 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2824万
展开全部
C++中可以同时using 两个命名空间,但前提是这两个空间中没有相同的变量或函数,否则会提示 "ambiguous symbol"的错误信息。
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。在C++中,变量、函数和类都是大量存在的。如果没有命名空间,这些变量、函数、类的名称将都存在于全局命名空间中,会导致很多冲突。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式