一、命名空间
1.C语言的问题:
#include<stdio.h>
#include<stdlib.h>
int rand = 10;
int main()
{
printf("%d\n", rand);
return 0;
}
如上代码,运行后会显示:error C2365: “rand”: 重定义;以前的定义是“函数”
这是因为全局变量rand与stdlib.h库中的rand()函数名字冲突。
为了解决这种命名冲突问题,在C++中引入了namespace进行解决。
2.命名空间定义:
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}
中即为命名空间的成员。例子如下:
//基本的命名空间定义
namespace a
{
int rand = 10;
int Add(int a, int b)
{
return a + b;
}
struct Node
{
struct Node* next;
int val;
};
}
命名空间也可以嵌套,如下:
namespace b1
{
int a;
int b;
int Add(int x, int y)
{
return x + y;
}
namespace b2
{
int c;
int d;
int Sub(int x, int y)
{
return x - y;
}
}
}
也要注意