C++中的namespace只是很小的一个点,但在项目规模越来越大和多人协作的场景中,起着十分重要的作用。例如我们写测试例子,没有必要创建建很多文件,还要避免类名和方法名冲突,直接通过namespace进行隔离即可。程序如下:
#include <iostream>using namespace std;namespace tt01
{void showInfo(){cout << "tt01 info" << endl;}
}namespace tt02
{void showInfo(){cout << "tt02 info 222" << endl;}
}int main()
{tt01::showInfo();tt02::showInfo();system("pause");return 0;
}
使用注意点
- ::是作用域运算符,前面需要命名空间。
- 全局变量无命名空间,在作用域内局部变量会覆盖全局变量。
- 局部变量无作用域设置的概念。
- namespace是对全局变量命名空间的再次划分。
namespace包含的内容
namespace Space
{全局变量:int a;定义类:struct Stu{};方法:void fun(){}其它命名空间:namespace{}
}
namespace嵌套
namespace Space{int x;int y;namespace Other{int m;}
}//访问变量
using namespace Space::Other;