大家好,我是陈同学。我将开一个关于C/C++的学习笔记专题。话不多说,我们开始今天的分享。
命名空间 namespace
所谓 namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为 std 的 namespace 中。
为什么要有命名空间呢?在 C 语言中只有一个全局作用域。C 语言中所有的全局标识符共享同一个作用域,这就容易造成同名标识符间发生冲突。为了解决这一问题,C++中提出了命名空间的概念。命名空间将全局作用域分成不同的部分,不同命名空间中的标识符可以同名而不会发生冲突,命名空间可以相互嵌套。全局作用域也叫默认命名空间
命名空间的语法
C++命名空间的定义:
namespace name{
};
C++命名空间的使用:
使用整个命名空间:
using namespace name;
使用命名空间中的变量:
using name::variable;
代码实例
/**
*@file 01命名空间.cpp
*@author chenshining
*@version v1.0
*@date 2023-07-05
*/
#include <iostream>
#include <vector>
// <iostream> 未引入标准的std,需要我们手动引用std命名空间
using namespace std;
// 定义命名空间
namespace NameSpaceA{
int a = 0;
}
namespace NameSpaceB{
int a = 1;
namespace NameSpaceC{
struct Teacher
{
char name[10];
int age;
};
}
}
int main(){
// 使用命名空间
using namespace NameSpaceA;
using NameSpaceB::NameSpaceC::Teacher;
cout<< a <<endl;
cout <<NameSpaceB::a <<endl;
Teacher t1 = {"csn",10};
cout<< t1.name << endl;
cout<< t1.age << endl;
return 0;
}