文章目录
前言
C++命名空间的定义、C++命名空间的使用、C++输入&输出等的介绍。
一、C++命名空间的定义
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}
中即为命名空间的成员
命名空间的定义:
namespace hhb
{
int a = 0;
int Add(int x, int y)
{
return x + y;
}
int Sub(int x, int y)
{
return x - y;
}
struct Node
{
struct Node* next;
int val;
};
}
- 命名空间内可以定义变量,函数,类型等
- 命名空间内定义的变量,函数,类型等与在全局/局部变量定义一样。
- 命名空间结尾不需要加分号。
命命名空间可以嵌套定义:
namespace hhb
{
int a = 0;
int Add(int x, int y)
{
return x + y;
}
namespace hhz
{
int Sub(int x, int y)
{
return x - y;
}
struct Node
{
struct Node* next;
int val;
};
}
}
同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
- 比如:一个工程中的 test.h 和 test.cpp 中,两个相同名字的命名空间会被合并成一个。
1. C++命名空间产生的原因
C++会兼容C语言,C语言在多人协作等一些情况下,会有命名冲突的问题。C++为了解决C语言命名冲突的问题,定义了命名空间。一个命名空间就产生了一个新的作用域。
因此变量的空间可以分为 局部作用域,全局作用域,命名空间域。
2. 作用域限定符
作用域限定符 ------ ::(两个英文的冒号)
- 作用域限定符可以指定编译器寻找的空间。
- 作用域限定符前面空格(或不写),后面跟变量名,访问全局作用域。
#include <stdio.h>
int a = 1;
int