/********************命名空间的嵌套**************************/
#include <iostream>
namespace space1
{
int a(10);
char *str("gogogo");
namespace space2 //命名空间的嵌套
{
int a(9);
}
}
namespace space1 //命名空间的拓展
{
int y(5);
//int a(15);重定义错误
}
namespace space1_rename= space1;//给命名空间起一个别名
int main()
{
std::cout << space1_rename::space2::a << std::endl;//命名空间可以嵌套
std::cout << space1_rename::y << std::endl;
std::cout << space1_rename::a << std::endl;
return 0;
}
//using namespace space1_rename;
void main11()
{
//std::cout << space1_rename::a <<space1_rename::str<< std::endl;
//std::cout << a << stspace_rename<< std::endl;
}
/********************using作用域**************************/
#include<iostream>
#include<stdlib.h>
namespace mydata
{
int a(6);
}
namespace yourdata
{
int a(8);
}
using namespace mydata;//using必须在命名空间的后面,作用域:从这个地方打开命名空间
using namespace yourdata;
//using如果变量重名,会出现不明确错误,加上命名空间修饰符
void go()
{
//using namespace mydata;
//命名空间如果在块语句内容,作用域是定义开始到块语句结束
//using如果变量重名,会出现不明确错误,加上命名空间修饰符
std::cout << mydata::a << std::endl;
}
//using namespace mydata;//作用域为从代码开始到结束
int main()
{
//std::cout << mydata::a << std::endl;
std::cout <<yourdata::a << std::endl;
system("pause");
return 0;
}