5.3 命名空間

代碼:

#include <iostream>

namespace a01 //定義1個名爲a01的空間,不能寫在main函數裏
{
    int hp{ 100 };//定義1個空間內的變量
    int mp{ 200 };
    int lv{ 30 };

    namespace b02  //在a01空間裏再定義1個名爲b02的空間,命名空間可以一直嵌套
    {
        int shang{ 300 };//在b02空間裏聲明1個變量
        int fang{ 200 };

        namespace c03
        {
            int lv = a01::lv;//變量名同名時,調用上級空間的變量,帶有空間限定符
            int kv = lv; //變量名不同名時,調用上級空間的變量,如果上級空間有相同的變量名,要帶上空間限定符
        }
    }
}

int main()
{
    using a01::hp; //限定使用空間a01中的1條指令hp
    using namespace a01; //使用a01空間的所有指令,不包括嵌套的命名空間
    using namespace a01::b02;////使用a01空間嵌套的b02空間的所有指令

    fang = 2;
    hp = 230;
    int b = a01::b02::fang;//使用空間b02內的fang變量

    std::cout<<hp << std::endl;
    std::cout << a01::mp; //正常使用a01空間裏mp變量
}

騰訊課堂-易道雲學院

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章