一、什么是C++
C++是基于c 语言提出的,在C语言的基础上引入并扩充了面向对象的概念。
C++既可以进行C语言的过程化程序设计。也可以支持面向对象的程序设计语言应运而生。
二、命名空间(namespace)
在C语言中从来没有见过命名空间,而当我们首次接触c++的程序时会出现几个新的关键字,比如namespace、cout、cin 、等等。
下边将介绍一下命名空间(namespace)的用法。
1、命名空间的作用
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染。
2 、命名空间的定义
定义命名空间,需要用到namespace关键字,后面跟命名空间的名字,然后接一{},{}中为命名空间的内容。
举个例子:
namespace N1
{
int a;//命名空间的内容可以是变量,也可以是函数。
int Add(int x, int y)
{
return x + y;
}
}
在命名空间中还可以嵌套命名空间定义:
namespace N2
{
int a;
int b;
int Sub(int x, int y)
{
return x-y;
}
namespace N21
{
int c;
int b;
int Mul(int x, int y)
{
return x * y;
}
}
}
在同一个工程中允许定义多个同名的命名空间,编译器最后合成一个命名空间中。
一个命名空间就定义了一个新的作用域,命名空间中的所有内容局限于该命名空间中。
三、命名空间的使用
举个例子:
#include<iostream>
#include<math.h>
#include"a.h"
using namespace std;//c++库,将命名空间的内容全部展开
namespace N1
{
int a=10;
int b = 20;
int Add(int x, int y)
{
return x + y;
}
namespace N0
{
int c = 100;
int Add(int x, int y)
{
return x + y;
}
}
}
//方法二:将命名空间的所有内容全部展开。
using namespace N1;
//方法三:将命名空间中的部分展开
using N1::Add;
using N1::a;
int main()
{//方法一:直接指定
printf("%d\n", N1::a);//相当于把a直接单独展开在全局域中。
//如果没有N1::则它里边的内容出了命名空间。就会无效。
printf("%d\n", b);//可以不用N1::
printf("%d\n", N1::N0::Add(3, 4));
return 0;
}
一般在工程或者项目中不要将命名空间的内容全部展开。