在一个cpp文件里,可不可以使用多个不同的 using namespace 命名空间?

时间:2022-12-04 08:33:07
在一个cpp文件里,可不可以使用多个不同的 using namespace 命名空间?
如果2个namespace里有冲突的类名或函数名,怎么解决?这种情况下怎样使用namespace才能避免冲突?谢谢!
谢谢!

10 个解决方案

#1


using namespace用不同的名字空间

#2


当然可以

#3


可以,你可以同时用两个using namespace std试一下,不会出错的

#4


可以使用不同的命名空间

using namespace name1;
using namespace name2;

name1::test(); // 不同命名空间中的相同的函数名,通过前面的命名空间来区分。
name2::test();

#5


可以的。

#6


当然可以。

#7


可以的

#8


如果两个命名空间中的变量名有相同的话,那用了和没用没多大区别,反正都要使用前缀来区分

#9


可以呀

#10


using   namespace用来确定编译时缺省查找的名字空间。   
  例如,使用了STL的头文件,后面可以添加using   namespace   std;。这样就可以直接写类型名字了。如cout   <<   endl;   
  否则每次用到STL类型的时候都要添加std::。如std::cout   <<   std::endl;   
  如果编译器发现某个名字在多个缺省的名字空间都出现过,会显示编译错误,这时就必须使用::操作符强行指定名字空间了。   
  例如你自己定义了一个变量,名字也叫cout。这时你就必须指定是std::cout还是::cout(直接使用::表示根名字空间)。

#1


using namespace用不同的名字空间

#2


当然可以

#3


可以,你可以同时用两个using namespace std试一下,不会出错的

#4


可以使用不同的命名空间

using namespace name1;
using namespace name2;

name1::test(); // 不同命名空间中的相同的函数名,通过前面的命名空间来区分。
name2::test();

#5


可以的。

#6


当然可以。

#7


可以的

#8


如果两个命名空间中的变量名有相同的话,那用了和没用没多大区别,反正都要使用前缀来区分

#9


可以呀

#10


using   namespace用来确定编译时缺省查找的名字空间。   
  例如,使用了STL的头文件,后面可以添加using   namespace   std;。这样就可以直接写类型名字了。如cout   <<   endl;   
  否则每次用到STL类型的时候都要添加std::。如std::cout   <<   std::endl;   
  如果编译器发现某个名字在多个缺省的名字空间都出现过,会显示编译错误,这时就必须使用::操作符强行指定名字空间了。   
  例如你自己定义了一个变量,名字也叫cout。这时你就必须指定是std::cout还是::cout(直接使用::表示根名字空间)。