从这篇博客开始,也代表我开启了C++的学习。我也将以博客的形式将自己的所学和所感分享出来。
一、命名空间
因为在写代码的过程中,尤其是海量的代码,难免会出现重名或者定义名称不便利的情况。因此我们引用出命名空间的概念来解决这些冲突。
1.命名空间里我们可以定义变量,还可以定义函数和结构体。命名空间可以这样来表示:
namespace QWQ
{
//变量
int a = 1;
//函数
int ADD(int x, int y)
{
return x + y;
}
//结构体
struct stu
{
int age;
char name;
char tel;
};
}
2.命名空间还可以嵌套,例如我们下面的代码,命名空间a中可以嵌套b和c。我们也可以继续层层嵌套。
namespace a
{
int a = 1;
int ADD(int x, int y)
{
return x + y;
}
namespace b
{
int a = 1;
//......
}
namespace c
{
int a = 1;
//......
}
}
那么,这一点的优势我们也可以利用起来,给大家举个例子。
namespace school
{
namespace class1
{
namespace stu
{
int name;
int age;
//......
}
}
namespace class2
{
namespace stu
{
//......
}
}
}
这样的话,我们就可以精准的找到一个学校里面不同班级的不同学生,这样的话我们也可以避免命名冲突,并且非常方便。因为我们在这里面可以统一使用name,age等变量,不用担心重名使用的情况。
3.命名空间之间允许存在同名的情况,编译器会将其进行合并。但不能出现重复的定义否则会报错。
namespace A
{
int a = 1;
int ADD(int x, int y)
{
return x + y;
}
}
namespace A
{
int b = 1;
int ADD(int x, int y)
{
return x + y;
}
}
下面这段代码中,就会把int a 和 int b 合并在命名空间A中,但是ADD函数由于重复定义会报错。
命名空间怎么使用呢?
常用的有三个办法
1.加命名空间名称和作用域限定符