命名空间namespace
关键字:namespace
就是划片取名字的意思;为了区分不同程序库里面的变量。
编程实现命名空间的使用:
#include<stdlib.h>
#include<iostream>
using namespace std;
namespace A//定义命名空间A
{
int x=1;
void fun()
{
cout << "A" << endl;
}
}
namespace B//定义命名空间B
{
int x=2;
void fun()
{
cout << "B" << endl;
}
void fun2()
{
cout << "C" << endl;
}
}
using namespace B;//使用B的命名空间
int main()
{
cout << A::x << endl;
B::fun();//因为A中也有函数fun,所以也要写明B::fun();才能说明是调用B的函数;
fun2(); //只有B有函数fun2(),又因为前面有使用B的命名空间,所以直接用;
system("pause");
return 0;
}
当然上述程序中若删除using namespace std;那么可在每个cin和cout前面加上std::即可。
再来一个例子:实现寻找数组里面的最大值或者最小值
#include<stdlib.h>
#include<iostream>
using namespace std;
namespace CampA
{
int getMaxOrMin(int *arr, int count, bool isMax)
{
int temp = arr[0];
for (int i = 1; i < count; i++)
{
if (isMax)
{
if (temp < arr[i])
{
temp = arr[i];
}
}
else
{
if (temp > arr[i])
{
temp = arr[i];
}
}
}
return temp;
}
}
int main()
{
int arrl[] = {4,5,8,3,6,9,7,12,89};
int len = sizeof(arrl)/sizeof(char *);//获得数组的长度
cout << "请输入要计算最大值还是最小值,1-最大,0-最小:" << endl;
bool isMax;
cin >> isMax;
cout << CampA::getMaxOrMin(arrl, len, isMax) << endl;
system("pause");
}