运行以下代码段后,输出为
外.
内.
内.
我知道这是关于"命名空间"的用法,但不明白为什么"Inner :: message()"的调用打印出"内部".谢谢你的解释.
#include <iostream>
using namespace std;
namespace Outer
{
void message( );
namespace Inner
{
void message( );
}
}
int main( )
{
Outer::message( );
Outer::Inner::message( );
using namespace Outer;
Inner::message( );
return 0;
}
namespace Outer
{
void message( )
{
cout<< "Outer.\n";
}
namespace Inner
{
void message( )
{
cout << "Inner.\n";
}
}
}
Run Code Online (Sandbox Code Playgroud)
Sio*_*vok 11
这很有道理.您正在使用命名空间Outer.在命名空间内Outer你有两个成员......
void message();void Inner::message();你在Inner那里明确地限定并调用了消息.你为什么不这么想?如果你没有明确地限定Inner,那么它会调用void Outer::message();.