C++能同时using两个命名空间吗?
我在主函数里,同时usingnamespacestd;usingnamespaceme;“me”是我自己定义的命名空间。就是这两句写在一起,如果两个命名空间存在相同的函数...
我在主函数里,同时
using namespace std;
using namespace me;
“me”是我自己定义的命名空间。就是这两句写在一起,如果两个命名空间存在相同的函数,这样是不是会有冲突的啊? 展开
using namespace std;
using namespace me;
“me”是我自己定义的命名空间。就是这两句写在一起,如果两个命名空间存在相同的函数,这样是不是会有冲突的啊? 展开
展开全部
正确!
一般来说好的编程风格是不会使用using namespace 这样的格式的.
尤其是在拥有多个命名空间的时候. namespace 本来就是为了解决命名冲突而设立的~
好的用法是只using具体的函数名或者类名, 必要时写上全名以强调.
using std::vector;
using std::cout;
using std::cin; // 仅单独using特定的名称简写.
me::cout << "xx";
std::cout << "xx"; // 有歧义后或者有误导性的地方, 使用全名来区分, 不要用简写.
这些细节都是区分一个程序员是否足够专业的标志.
一般来说好的编程风格是不会使用using namespace 这样的格式的.
尤其是在拥有多个命名空间的时候. namespace 本来就是为了解决命名冲突而设立的~
好的用法是只using具体的函数名或者类名, 必要时写上全名以强调.
using std::vector;
using std::cout;
using std::cin; // 仅单独using特定的名称简写.
me::cout << "xx";
std::cout << "xx"; // 有歧义后或者有误导性的地方, 使用全名来区分, 不要用简写.
这些细节都是区分一个程序员是否足够专业的标志.
展开全部
如果两个命名空间存在相同的函数或变量,会有冲突。有错误信息 “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;
}
如果你想用 指定的 一个空间 的某个 同名函数或变量,你可以加以限定。例如:
#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;这样是可以的,但是最好的办法是在需要的时候使用域作用符::来灵活得限制,这样可以增加易读性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++中可以同时using 两个命名空间,但前提是这两个空间中没有相同的变量或函数,否则会提示 "ambiguous symbol"的错误信息。
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。在C++中,变量、函数和类都是大量存在的。如果没有命名空间,这些变量、函数、类的名称将都存在于全局命名空间中,会导致很多冲突。
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。在C++中,变量、函数和类都是大量存在的。如果没有命名空间,这些变量、函数、类的名称将都存在于全局命名空间中,会导致很多冲突。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询