在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一,命名空间(namespace)的基本概念以及由来 1.什么是标识符: 在C++中,标识符可以是基本的变量,类,对象,结构体,函数,枚举,宏等。 2.什么是命名空间: 所谓的命名空间是指标识符的可见范围。C++标准库中的所有的标识符都被定义在一个名为std的命名空间中。 3.C语言的命名空间: 在C语言中只有一个全局作用域,因此在C语言中所有的标识符共享一个命名空间,因此随着代码量的增大,标识符之间可能会重名。由此会造成一些命名问题。 4.针对C语言的问题,在C++中提出了命名空间的概念: 1.命名空间将全局作用域划分成不同的的部分。 2.不同的命名空间中的标识符可以重名而不会发生冲突。 3.全局作用域也叫做默认命名空间。 4.命名空间之间可以相互嵌套。 二,命名空间(namespace)的定义以及使用 1.命名空间的定义: namespace 命名空间名称 { ...... } 2.命名空间的使用: using namespace name; // 使用name这个命名空间 using namespace name::variable; // 使用name这个命名空间下的variable std::cout << "Hello,NameSpace" << std::endl; // 直接使用这个命名空间中的标识符 ::tmp = 0; // 使用默认命名空间的变量,默认情况下可以直接使用默认命名空间的所有标识符 3.域作用符:: 域作用符用两个冒号(::)表示,用来访问命名空间下的标识符。 三,命名空间(namespace)实际案例 # include<iostream> /* 定义命名空间n1 */ namespace n1 { /* 定义学生类 */ class Student { public: char name[64]; int age; }; /* 定义函数 */ void printN1() { std::cout << "我是n1命名空间的printN1()" << std::endl; } /* 定义命名空间n2 */ namespace n2 { /* 定义变量n */ int n = 0; } } // 在默认命名空间下定义变量a int a = 100; int main() { // 使用命名空间n1,曝光n1的所有标识符,因此可以调用printN1()函数 using namespace n1; printN1(); // 使用命名空间n2,曝光n2的所有标识符,因此可以使用变量n using namespace n1::n2; // 直接使用指定命名空间下的标识符 std::cout << n << std::endl; // 使用域作用符访问默认命名空间下的标识符 ::a = -100; } |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论