#Demo
#include <iostream>
using namespace std;
//----------------------------------------------------------------------------------
// 1. 命名空间
//----------------------------------------------------------------------------------
//设置命名空间A
namespace NameSpaceA
{
int a = 0; //变量a在命名空间A中
}
//设置命名空间B
namespace NameSpaceB
{
int a = 1;
//定义命名空间C
namespace NameSpaceC
{
struct Teacher
{
char name[10];
int age;
};
}
}
//----------------------------------------------------------------------------------
//test_namespace_demo
//----------------------------------------------------------------------------------
// breif: 测试命名空间的用法和变量
// 输出:
// a = 0
// a = 1
// t1.name = aaa
// t1.age = 3
//----------------------------------------------------------------------------------
void test_namespace_demo(void)
{
using namespace NameSpaceA;
using NameSpaceB::NameSpaceC::Teacher;
printf("variable a = %d, in NameSpaceA\n", a); //命名空间A中的变量
printf("variable a = %d, in NameSpaceB\n", NameSpaceB::a);
NameSpaceB::NameSpaceC::Teacher t2; //不可以在定义t1, 否则显示"NameSpaceB::NameSpaceC::Tearcher t1重定义"
Teacher t1 = { "aaa", 3 };
printf("t1.name = %s\n", t1.name);
printf("t1.age = %d\n", t1.age);
}