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