c++中的枚舉、自定義變量以及命名空間

c++中的枚舉、自定義變量以及命名空間

枚舉

格式:

enum class 名稱 : 基本類型
{
變量1,
變量2,

}

例如:

enum class COLOR : short   //枚舉顏色
{
    RED,    //默認爲0
    BLUE,
    GREEN
};

int main()
{
    COLOR red = COLOR::RED;
    COLOR blue = COLOR::BLUE;
    COLOR green = COLOR::GREEN;
    //std::cout << "red = " << red << std::endl; //編譯過不去,類型比較嚴格
    std::cout << "red = " << (short)red << std::endl;  //強轉才能打印出來
    std::cout << "blue = " << (short)blue << std::endl;
    std::cout << "green = " << (short)green << std::endl;
}

結果:
在這裏插入圖片描述
結論:

1、enum型內部變量,若自然順序,依次增1
2、若要打印顯示對應數值必須顯式轉換

重要事項:

1、內部變量默認類型int
2、成員只能是整數,浮點數不可以

自定義變量

大體上有以下三種方式:
1、#define Des_TypeName TypeName
2、typedef TypeName Des_TypeName;
3、using Des_TypeName=TypeName; //c++11以上可用包含11

注意: 第一種純屬是字符的替換,後兩種不是

例子:

#define MyInt int    //第一種
typedef int myint;   //第二種
int main()
{
    
    using mint = int;//第三種
    MyInt AGE{ 10 };
    myint myint{ 20 };
    mint Age{ 30 };
    std::cout << "define   value=" << AGE << typeid(AGE).name() << std::endl;
    std::cout << "typedef  value=" << myint << typeid(myint).name() << std::endl;
    std::cout << "using    value=" << Age << typeid(Age).name() << std::endl;
}

結果:
自定義變量

命名空間使用

1、單項使用

    using std::cout;  //使用這個,就using這個
    using std::cin;
    int pig{ 0 };
    cout << "我是豬!" << (char)10;
    cin >> pig;

說明: 用哪個就using哪個

2、完整包含

	using namespace std;  //直接完整全部用了
    int pig{ 0 };
    cout << "我是豬!" << (char)10;
    cin >> pig;

說明: 用哪個空間裏的,直接using namespace 整個空間

3、嵌套使用

namespace zhansan  //張三的命名空間
{
    unsigned int age = 30;
    char sex = 1;
    namespace dog  //狗的命名空間,嵌套
    {
        unsigned int age=5;
        char sex = 0;
    }
}
int main()
{
    using namespace std;
    using namespace zhansan; 
    cout << dog::age << endl; //可訪問
    dog::age = 10; //可修改
    cout << dog::age << endl; //可打印
}

4、自定義命名空間

代碼:

namespace zhansan
{
    unsigned int age = 30;
    char sex = 1;
}
int main()
{
    using namespace std;
    //1、完整包含
    using namespace zhansan;
    cout <<"zhansan的年齡=" << age << endl;

    //2、僅包含需要的變量
    using zhansan::age;
    cout << "zhansan的年齡=" << age << endl;
}

使用注意事項:
1、不能放函數體內
2、可嵌套
3、子級空間調用上級空間需要加命名空間限定符

發佈了20 篇原創文章 · 獲贊 19 · 訪問量 2346
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章