命名空间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");
}
原文地址:https://www.cnblogs.com/vincentQin/p/5406017.html