命名空间
定义:用花括号将全局作用域划分为不同的块,不同的块就是命名空间,不同命名空间内部的标识符可以同名。
特点:1. 命名空间可以相互嵌套。
2. 全局作用域叫默认命名空间。
//默认命名空间(全局变量空间) namespace Name // 全局作用域中此空间作为名字为Name的空间 { namespace Internel // 名字为Internel的空间 { /* */ } /* */ } //所有命名空间中的变量本质还是全局变量
使用命名空间的函数与变量:
1. 使用名字为Name的命名空间的函数与变量 ---> using namspace Name; // 声明接下来要使用
2. 使用名字为Name的命名空间的变量与函数 ---> using Name::var; // 使用的是哪个变量
3. 使用默认命名空间的变量与函数 ---> ::var; // 使用的是哪个变量
#include <stdio.h> namespace First { int i = 0;
} namespace Second { int i = 1; namespace Internal { struct P { int x;
int y;
}; } } int main() { using namespace First; // 将要在main()函数中使用First命名空间的一切函数与变量 using Second::Internal::P; // 将要在main()函数中使用second命名空间中的internel命名空间中的P变量 printf("First::i = %d ", i); // 0 printf("Second::i = %d ", Second::i); // 1 P p = {2, 3}; printf("p.x = %d ", p.x); // 2 printf("p.y = %d ", p.y); // 3 return 0; }