/* 引入了命名空间这个概念作为附加信息来区分不同库中相同名称的函数、类、变量等。 使用了命名空间即定义了上下文。本质上,命名空间就是定义了一个范围 定义命名空间格式: namespace namespace_name { // 代码声明 } 调用命名空间的函数或变量格式: (1)using name; (2)name::code; // code 可以是变量或函数 */ /********1-声明及调用命名空间(1)using name****************/ #include <iostream> using namespace std; // 第一个命名空间 namespace first_space{ void func(){ cout << "Inside first_space" << endl; } } // 第二个命名空间 namespace second_space{ void func(){ cout << "Inside second_space" << endl; } } using namespace first_space; int main () { // 由于使用using first_space //因此调用第一个命名空间中的函数 func(); return 0; } /********2-声明及调用命名空间(2)name::code****************/ // 第一个命名空间 namespace first_space{ void func(){ cout << "Inside first_space" << endl; } } // 第二个命名空间 namespace second_space{ void func(){ cout << "Inside second_space" << endl; } } int main2 () { // 调用第一个命名空间中的函数 first_space::func(); // 调用第二个命名空间中的函数 second_space::func(); return 0; } /********3-使用using指定特定函数****************/ using std::cout; //由于只using了std::cout,因此后续代码中只有cout可以不用声明直接用 int main3 () { //endl由于前面没有申明,所以调用时必须完全引用来源 cout << "std::endl is used with std!" << std::endl; return 0; } /********4-嵌套的命名空间****************/ /* 命名空间可以嵌套,可以在一个命名空间中定义另一个命名空间,格式如下: namespace namespace_name1 { // 代码声明 namespace namespace_name2 { // 代码声明 } 可以通过使用 :: 运算符来访问嵌套的命名空间中的成员: // 访问 namespace_name2 中的成员 using namespace namespace_name1::namespace_name2; // 访问 namespace:name1 中的成员,该范围内 namespace_name2 中的元素也是可用的 using namespace namespace_name1; } */ 备注:此为学习笔记,课程来源菜鸟教程。 </iostream>