求指教,以下代码是关于不具名命名空间的问题:

#include <iostream>
namespace
{
int a = 10;
namespace savitch1
{
void greeting( );
}
namespace savitch2
{

void greeting( );

}
void big_greeting( );
void savitch1::greeting( )
{
std::cout << "Hello from namespace savitch1.\n"<< a << std::endl;
}
void savitch2::greeting( )
{
std::cout << "Greetings from namespace savitch2.\n";
}
void big_greeting( )
{
std::cout << "A Big Global Hello!\n";
}
}

int main( )
{
savitch1::greeting();
savitch2::greeting();
big_greeting( ); //使用了std一个标准命名空间
return 0;
}

这个程序的开始使用了一个不具名的命名空间,里面的a这个变量在main函数里面是不能用的,但是里面的函数怎么可以在main函数里面调用呢?求解释~!!!!!

慕神8447489
浏览 317回答 1
1回答

FFIVE

#include <iostream>namespace{int a = 10;namespace savitch1{void greeting( );}namespace savitch2{void greeting( );}void big_greeting( );void savitch1::greeting( ){std::cout << "Hello from namespace savitch1.\n"<< a << std::endl;}void savitch2::greeting( ){std::cout << "Greetings from namespace savitch2.\n";}void big_greeting( ){std::cout << "A Big Global Hello!\n";}}using namespace std; //加了个这个int main( ){savitch1::greeting();savitch2::greeting();big_greeting( );//使用了std一个标准命名空间cout<<a<<endl; //是不是这样用啊return 0;}.. 我也不知道你说的是怎么调用 但上边的可以运行..
打开App,查看更多内容
随时随地看视频慕课网APP