C++命名空间:实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。
例如: namespace name //指定命名空间为name
接下来我们直接上代码:
1、
#include <iostream> int a = 30 ; //声明一个HotDog名字空间 namespace HotDog { int a = 20 ; namespace HotPig { int a = 10 ; }; void say_hello(void); }; //实现say_hello()方法 void HotDog::say_hello(void) { printf("hello hotdog\n"); } int main(void) { /* 使用::新运算符,用于解决名字冲突 */ printf("a:%d \n" , HotDog::HotPig::a); printf("a:%d \n" , HotDog::a); printf("a:%d \n" , ::a); HotDog::say_hello(); return 0 ; }</span>
2、
#include <iostream> int a = 30 ; namespace HotDog { typedef unsigned int U32 ; int a = 20 ; namespace HotPig { int a = 10 ; }; U32 say_hello(U32 a); }; HotDog::U32 HotDog::say_hello(HotDog::U32 a) { printf("hello hotdog a:%d \n" , a); } int main(void) { printf("a:%d \n" , HotDog::HotPig::a); printf("a:%d \n" , HotDog::a); printf("a:%d \n" , ::a); //HotDog::say_hello(); HotDog::U32 a = 100 ; HotDog::say_hello(a); return 0 ; }</span>3、
#include <iostream> int c = 30 ; namespace myspace { int a ; int b ; int c = 20 ; void say_hello(void) { printf("hello world \n"); } }; using namespace myspace ; int main(void) { //这里的::相当于C语言结构体访问的.和-> printf("c : %d \n" ,myspace::c); printf("c : %d \n" , ::c); //·ÃÎÊsay_hello·½·¨ myspace::say_hello(); return 0 ; }