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、子级空间调用上级空间需要加命名空间限定符

发布了6 篇原创文章 · 获赞 7 · 访问量 268

猜你喜欢

转载自blog.csdn.net/u010092716/article/details/104312256
今日推荐