当前位置: 首页 > wzjs >正文

万州做网站肇庆百度快速排名

万州做网站,肇庆百度快速排名,网站怎么引入微信支付,wordpress 数据库设计c enum使用笔记 1. 无作用域枚举 vs. 有作用域枚举2. 枚举项的初始化规则3. 指定底层类型4. 类型转换规则5. 枚举的声明与定义6. 示例对比无作用域枚举的潜在问题:有作用域枚举的安全性: 总结 C中的枚举( enum)是一种取值受限的特…

c++ enum使用笔记

      • 1. 无作用域枚举 vs. 有作用域枚举
      • 2. 枚举项的初始化规则
      • 3. 指定底层类型
      • 4. 类型转换规则
      • 5. 枚举的声明与定义
      • 6. 示例对比
        • 无作用域枚举的潜在问题:
        • 有作用域枚举的安全性:
      • 总结

C++中的枚举( enum)是一种取值受限的特殊类型,分为 无作用域枚举有作用域枚举(C++11起)。以下是详细解释及示例:


1. 无作用域枚举 vs. 有作用域枚举

  • 无作用域枚举(传统枚举):
    枚举项直接暴露在外部作用域,可能导致命名冲突。

    enum Color { Red, Green, Blue };  // 定义
    Color c = Red;                     // 直接访问枚举项
    
  • 有作用域枚举(C++11起,enum classenum struct):
    枚举项需通过枚举类型名访问,避免命名冲突。

    enum class Color { Red, Green, Blue };  // 定义
    Color c = Color::Red;                   // 必须通过作用域访问
    

2. 枚举项的初始化规则

  • 默认从0开始递增
    enum { A, B, C };  // A=0, B=1, C=2
    
  • 可手动指定值,后续项自动递增:
    enum HttpCode { OK=200, Created=201, Accepted=202, BadRequest=400 };
    enum { X=5, Y, Z };  // X=5, Y=6, Z=7
    

3. 指定底层类型

  • 控制枚举项的尺寸,默认类型为int(无作用域枚举)或可指定(有作用域枚举):
    enum Direction : char { Up, Down };       // 无作用域,底层类型为char
    enum class Packet : uint8_t { SYN, ACK };  // 有作用域,底层类型为uint8_t
    

4. 类型转换规则

  • 无作用域枚举
    可隐式转换为整型,但整型需显式转换回枚举:

    Color c = Green;
    int i = c;                          // 隐式转换,i=1
    c = static_cast<Color>(2);          // 显式转换,c=Blue
    
  • 有作用域枚举
    必须显式转换与整型互转:

    Color c = Color::Green;
    int i = static_cast<int>(c);        // 显式转换,i=1
    c = static_cast<Color>(2);          // 显式转换,c=Color::Blue
    

5. 枚举的声明与定义

  • 前向声明需指定底层类型(C++11起):
    // 头文件中声明
    enum class LogLevel : int;
    enum Direction : char;// 源文件中定义
    enum class LogLevel : int { Debug, Info, Warning, Error };
    enum Direction : char { Up, Down };
    

6. 示例对比

无作用域枚举的潜在问题:
enum Light { Red, Green };
enum Signal { Red, Yellow };  // 错误!Red重复定义
有作用域枚举的安全性:
enum class Light { Red, Green };
enum class Signal { Red, Yellow };  // 正确,作用域隔离
Light l = Light::Red;               // 明确作用域

总结

  • 无作用域枚举:简单但易命名冲突,隐式转整型。
  • 有作用域枚举(推荐):类型安全,避免污染作用域,需显式转换。
  • 底层类型:控制枚举项的存储大小,支持前向声明。
  • 初始化:灵活指定值,适用于位掩码或特定编码场景。
http://www.dtcms.com/wzjs/366582.html

相关文章:

  • 武汉 大型 网站建设爱站网爱情电影网
  • 时间轴网页网站模板株洲seo
  • 义乌网站开发教育培训加盟
  • 珠海做网站公司有哪些常州seo外包公司
  • 网站301在哪里做今天新闻联播
  • 重庆专业的网站建设网站搭建的流程
  • 小学网站建设及使用营销案例
  • 网站seo的重要性江门seo网站推广
  • 网站生成手机页面网站seo好学吗
  • 宝安区建设网站app拉新推广代理
  • 网站首页下拉广告推广注册app拿佣金
  • php企业网站系统公司网站的推广方案
  • 学校官方网站建设谷歌优化seo
  • 深圳做app网站的公司哪家好网络营销属于哪个专业
  • 公司做的网站访问很慢网络seo是什么
  • 品牌vi设计案例欣赏pptseo快速排名服务
  • icp备案网站合肥头条今日头条新闻最新消息
  • 政府门户网站建设问题网站排名查询alexa
  • 网站正在建设 mp4凡客建站
  • 南乐政府门户网站建设百度 营销推广费用
  • 石家庄网站推广公司搜外seo
  • 单页网站赚钱百度联盟app
  • 聊城那里有做网站视频号的网站链接
  • 简述网站的设计流程是怎样的外包网
  • 成都网站建设私单千锋教育的官网
  • 网站程序免费下载网络销售
  • wordpress即时聊天放心网站推广优化咨询
  • 网页游戏交易网站杭州seo公司服务
  • wordpress被篡改文件优化设计六年级下册数学答案
  • 建站行业发展前景营销型网站分析