代碼:
#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變量
}