正如你可能已经猜到,这会导致一个错误:
C:\\ vcprojects \\ CPP测试。(15):错误c2668:“做”:明确调用重载函数
在这种情况下,它不能在全局命名空间中的发现(),所以它看起来在Foo名称空间和良好的(和命名空间std命名空间)。由于()是在一个以上的命名空间中,编译器不知道使用哪一个。
使用关键字范围就像一个正常的变量,如果它是在函数声明,只有在功能的影响。如果它是一个功能之外声明,它影响着整个文件从那一点了。使用关键字可以节省很多的打字的时候,你需要使用很多标识符从一个特定的命名空间……像代码时,你做的输入和输出!
考虑下面的例子:
1
2
3
4
5
6
7
8
9
10
|
int
main()
{
using
namespace
std;
cout <<
"Enter a number: "
;
int
nX;
cin >> nX;
cout <<
"You entered "
<< nX << endl;
return
0;
}
|
1
2
3
4
5
6
7
8
9
|
int
main()
{
std::cout <<
"Enter a number: "
;
int
nX;
std::cin >> nX;
std::cout <<
"You entered "
<< nX << std::endl;
return
0;
}
|
然而,上面的例子通常被认为是更容易阅读!
利用关键词得当可以使你的代码更简洁,更容易阅读。虽然使用关键字可以作为一种功能外,帮助解决每一个标识符的文件,这是不推荐的,因为它增加了多个命名空间标识符冲突的机会,这多少有点失败摆在首位的命名空间点。