news 2026/8/7 17:17:28

C++11介绍之enum类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++11介绍之enum类型

enum与之前的不同主要两点:

1.可以指定枚举成员的类型,通过在enum后加冒号再加数据类型来指明数据类型(: type),例:

enum separator: char {Comma = ',', Exclamation = '!', Question = '?'};

2.enum class定义的枚举类型称为限定作用域枚举,如果不指定作用域就不能使用它们的枚举类型,且转换为其它类型时需要做显式的强制转换。而enum定义的是枚举类型(旧枚举类型)为无作用域枚举,枚举类型不需要指定作用域且不需要进行显式强制转换。

测试代码如下:

#include <iostream> enum class Person {man, woman, boy, girl}; enum Pet: char {dog , cat, frog}; enum Fish: char {shark = 's', goldfish = 'g'}; int main() { std::cout << "sizeof Person is " << sizeof(Person) << std::endl; std::cout << "sizeof Pet is " << sizeof(Pet) << std::endl; Person person1{Person::boy}; // enum class枚举类型必须加作用域Person,着这在前面加上 using enum Person 或者 using Person::boy。 std::cout << (int)person1 << std::endl; // 必须做显式的强制转换 std::cout << sizeof(person1) << std::endl; Pet pet1{Pet::frog}; std::cout << "**********pet1************ " << std::endl; std::cout << (int)pet1 << std::endl;//默认是char。 std::cout << (char)pet1 << std::endl; std::cout << sizeof(pet1) << std::endl; std::cout << "**********fish1************ " << std::endl; Fish fish1{Fish::goldfish}; std::cout << fish1 << std::endl; std::cout << (char)fish1 << std::endl; std::cout << sizeof(fish1) << std::endl; return 0; }

执行结果如下:

sizeof Person is 4 sizeof Pet is 1 2 4 **********pet1************ 2 1 **********fish1************ g g 1
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 17:17:25

甲、乙方必争的“措施费”,你真的清楚吗?

甲、乙方必争的“措施费”,你真的清楚吗? 措施费,是指为完成工程项目施工,发生于该工程施工前和施工过程中非工程实体项目的费用,由施工技术措施费和施工组织措施费组成。 那么甲方乙方必争的“措施费”有哪些? 施工技术措施费 1.施工排水、降水费:是指为确保工程在…

作者头像 李华
网站建设 2026/8/7 17:14:08

FOC板子相关常用电路(多电路整理)

01基于STM32G4的FOC电机驱动学习板1.1 防反接电路电源正确接入时电流从 VIN 端流向负载&#xff0c;经由 Q3(NMOS) 通向地&#xff08;GND&#xff09;。在上电瞬间&#xff0c;由于 MOS 管的体二极管效应&#xff0c;地回路通过体二极管接通。接下来&#xff0c;由于 Vgs(门源…

作者头像 李华
网站建设 2026/8/7 17:13:13

Unity游戏开发:有限状态机(FSM)实战教程与角色动画控制

1. 项目概述&#xff1a;为什么Unity开发者绕不开FSM&#xff1f;如果你在Unity里做过稍微复杂一点的逻辑&#xff0c;比如角色控制、敌人AI或者UI流程&#xff0c;大概率会碰到一个头疼的问题&#xff1a;状态管理。想象一下&#xff0c;一个游戏角色有待机、行走、奔跑、跳跃…

作者头像 李华
网站建设 2026/8/7 17:08:11

游戏客户端开发_AI生成美术逻辑我从手敲变指挥

一、AI把美术和逻辑一起端上桌 我以前的工作很具体&#xff1a;画界面草图&#xff0c;写按钮逻辑&#xff0c;调动效&#xff0c;对着设计稿一行行还原。慢是慢&#xff0c;但出错少&#xff0c;项目组离不了。我最得意的是手感——一个列表滑起来顺不顺&#xff0c;我上手就…

作者头像 李华
网站建设 2026/8/7 17:06:55

终极解决方案:企业级软件授权管理工具完整指南

终极解决方案&#xff1a;企业级软件授权管理工具完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出授权提醒而困扰吗&#xff1f;Office软件功能受限影响工作效…

作者头像 李华