[{"data":1,"prerenderedAt":2635},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class":2207,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class":2619,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class":2634},{"id":4,"title":5,"body":6,"canonicalPath":2189,"chapter":2190,"chapterSort":2191,"date":2192,"description":134,"docI18nKey":2193,"docKey":2194,"docRoot":2195,"docTitle":2196,"extension":2197,"i18nKey":2198,"isBlogPost":2199,"isWikiDoc":187,"isWikiIndex":2199,"layout":2200,"legacyPath":2201,"locale":2202,"localeSlug":2203,"meta":2204,"navigation":187,"path":2189,"seo":2205,"sourcePath":2201,"sourceStem":2198,"stem":2198,"wikiDepth":141,"__hash__":2206},"content/wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class.md","enum class",{"type":7,"value":8,"toc":2168},"minimark",[9,13,22,57,62,65,70,101,105,108,111,125,128,208,211,281,284,289,578,584,592,596,1026,1030,1036,1040,1505,1509,1515,1517,1520,1523,1617,1621,1626,1630,1879,1883,1889,1908,1911,1916,1969,1976,1981,2018,2023,2028,2089,2092,2095,2136,2139,2164],[10,11,12],"h2",{"id":12},"本节解决什么问题",[14,15,16,17,21],"p",{},"C 语言的 ",[18,19,20],"code",{},"enum"," 有几个问题：",[23,24,25,41,51],"ol",{},[26,27,28,32,33,36,37,40],"li",{},[29,30,31],"strong",{},"名字污染","：枚举值会泄漏到其所在的作用域，例如 ",[18,34,35],{},"enum Color { red, green };"," 写完后，",[18,38,39],{},"red"," 就成了全局名字，不能再用于别的枚举。",[26,42,43,46,47,50],{},[29,44,45],{},"隐式转整数","：枚举值会悄悄变成整数参与运算（",[18,48,49],{},"red + 1"," 合法但通常没有意义）。",[26,52,53,56],{},[29,54,55],{},"底层类型不确定","：编译器自行决定用多大空间存储枚举值。",[14,58,59,61],{},[18,60,5],{}," 解决了上述所有问题。",[10,63,64],{"id":64},"这个特性是什么",[14,66,67,69],{},[18,68,5],{},"（强类型枚举 / 限定作用域枚举）是 C++11 引入的改进版枚举：",[71,72,73,84,90],"ul",{},[26,74,75,76,79,80,83],{},"枚举值有",[29,77,78],{},"作用域限定","，需要用 ",[18,81,82],{},"Color::red"," 访问。",[26,85,86,89],{},[29,87,88],{},"不会","隐式转换为整数。",[26,91,92,93,96,97,100],{},"可以",[29,94,95],{},"指定底层类型","（如 ",[18,98,99],{},"enum class Color : uint8_t","）。",[10,102,104],{"id":103},"c-标准版本","C++ 标准版本",[14,106,107],{},"C++11",[10,109,110],{"id":110},"需要的头文件",[14,112,113,114,116,117,120,121,124],{},"不需要额外头文件。",[18,115,5],{}," 是语言关键字。如果要使用 ",[18,118,119],{},"uint8_t"," 这类固定宽度整数作为底层类型，需要 ",[18,122,123],{},"#include \u003Ccstdint>","。",[10,126,127],{"id":127},"基本语法",[129,130,135],"pre",{"className":131,"code":132,"language":133,"meta":134,"style":134},"language-cpp shiki shiki-themes github-light github-dark","enum class 枚举名 : 底层类型\n{\n    值1,\n    值2,\n    值3\n};\n\n// 访问\n枚举名 变量 = 枚举名::值1;\n","cpp","",[18,136,137,152,158,164,170,176,182,189,196],{"__ignoreMap":134},[138,139,142,145,148],"span",{"class":140,"line":141},"line",1,[138,143,20],{"class":144},"szBVR",[138,146,147],{"class":144}," class",[138,149,151],{"class":150},"sVt8B"," 枚举名 : 底层类型\n",[138,153,155],{"class":140,"line":154},2,[138,156,157],{"class":150},"{\n",[138,159,161],{"class":140,"line":160},3,[138,162,163],{"class":150},"    值1,\n",[138,165,167],{"class":140,"line":166},4,[138,168,169],{"class":150},"    值2,\n",[138,171,173],{"class":140,"line":172},5,[138,174,175],{"class":150},"    值3\n",[138,177,179],{"class":140,"line":178},6,[138,180,181],{"class":150},"};\n",[138,183,185],{"class":140,"line":184},7,[138,186,188],{"emptyLinePlaceholder":187},true,"\n",[138,190,192],{"class":140,"line":191},8,[138,193,195],{"class":194},"sJ8bj","// 访问\n",[138,197,199,202,205],{"class":140,"line":198},9,[138,200,201],{"class":150},"枚举名 变量 ",[138,203,204],{"class":144},"=",[138,206,207],{"class":150}," 枚举名::值1;\n",[10,209,210],{"id":210},"常用用法",[212,213,214,228],"table",{},[215,216,217],"thead",{},[218,219,220,225],"tr",{},[221,222,224],"th",{"align":223},"left","用法",[221,226,227],{"align":223},"说明",[229,230,231,242,251,261,271],"tbody",{},[218,232,233,239],{},[234,235,236],"td",{"align":223},[18,237,238],{},"enum class E { A, B, C };",[234,240,241],{"align":223},"基本枚举类",[218,243,244,249],{},[234,245,246],{"align":223},[18,247,248],{},"enum class E : uint8_t { A, B, C };",[234,250,95],{"align":223},[218,252,253,258],{},[234,254,255],{"align":223},[18,256,257],{},"E::A",[234,259,260],{"align":223},"访问枚举值（带作用域）",[218,262,263,268],{},[234,264,265],{"align":223},[18,266,267],{},"static_cast\u003Cint>(E::A)",[234,269,270],{"align":223},"显式转换（不会隐式转换）",[218,272,273,278],{},[234,274,275],{"align":223},[18,276,277],{},"switch (val) { case E::A: ... }",[234,279,280],{"align":223},"switch 匹配",[10,282,283],{"id":283},"示例代码",[285,286,288],"h3",{"id":287},"示例-1旧-enum-vs-enum-class","示例 1：旧 enum vs enum class",[129,290,292],{"className":131,"code":291,"language":133,"meta":134,"style":134},"#include \u003Ciostream>\n\n// 旧式 enum（不推荐）\nenum OldColor { red, green, blue };\n\n// enum class（推荐）\nenum class Color { red, green, blue };\n\nint main()\n{\n    // 旧式 enum：名字污染，red 直接可见\n    OldColor oc = red;  // 直接写 red\n    int n = red;         // 隐式转为 0\n\n    // enum class：需要带作用域\n    Color c = Color::red;\n\n    // int m = Color::red;  // ❌ 编译错误！不会隐式转换为 int\n    int m = static_cast\u003Cint>(Color::red);  // ✅ 显式转换\n\n    std::cout \u003C\u003C \"OldColor red = \" \u003C\u003C n \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"Color::red = \" \u003C\u003C m \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[18,293,294,303,307,312,340,344,349,372,376,387,392,398,412,428,433,439,452,457,466,491,496,530,556,561,572],{"__ignoreMap":134},[138,295,296,299],{"class":140,"line":141},[138,297,298],{"class":144},"#include",[138,300,302],{"class":301},"sZZnC"," \u003Ciostream>\n",[138,304,305],{"class":140,"line":154},[138,306,188],{"emptyLinePlaceholder":187},[138,308,309],{"class":140,"line":160},[138,310,311],{"class":194},"// 旧式 enum（不推荐）\n",[138,313,314,316,320,323,326,329,332,334,337],{"class":140,"line":166},[138,315,20],{"class":144},[138,317,319],{"class":318},"sScJk"," OldColor",[138,321,322],{"class":150}," { ",[138,324,39],{"class":325},"sj4cs",[138,327,328],{"class":150},", ",[138,330,331],{"class":325},"green",[138,333,328],{"class":150},[138,335,336],{"class":325},"blue",[138,338,339],{"class":150}," };\n",[138,341,342],{"class":140,"line":172},[138,343,188],{"emptyLinePlaceholder":187},[138,345,346],{"class":140,"line":178},[138,347,348],{"class":194},"// enum class（推荐）\n",[138,350,351,353,355,358,360,362,364,366,368,370],{"class":140,"line":184},[138,352,20],{"class":144},[138,354,147],{"class":144},[138,356,357],{"class":318}," Color",[138,359,322],{"class":150},[138,361,39],{"class":325},[138,363,328],{"class":150},[138,365,331],{"class":325},[138,367,328],{"class":150},[138,369,336],{"class":325},[138,371,339],{"class":150},[138,373,374],{"class":140,"line":191},[138,375,188],{"emptyLinePlaceholder":187},[138,377,378,381,384],{"class":140,"line":198},[138,379,380],{"class":144},"int",[138,382,383],{"class":318}," main",[138,385,386],{"class":150},"()\n",[138,388,390],{"class":140,"line":389},10,[138,391,157],{"class":150},[138,393,395],{"class":140,"line":394},11,[138,396,397],{"class":194},"    // 旧式 enum：名字污染，red 直接可见\n",[138,399,401,404,406,409],{"class":140,"line":400},12,[138,402,403],{"class":150},"    OldColor oc ",[138,405,204],{"class":144},[138,407,408],{"class":150}," red;",[138,410,411],{"class":194},"  // 直接写 red\n",[138,413,415,418,421,423,425],{"class":140,"line":414},13,[138,416,417],{"class":144},"    int",[138,419,420],{"class":150}," n ",[138,422,204],{"class":144},[138,424,408],{"class":150},[138,426,427],{"class":194},"         // 隐式转为 0\n",[138,429,431],{"class":140,"line":430},14,[138,432,188],{"emptyLinePlaceholder":187},[138,434,436],{"class":140,"line":435},15,[138,437,438],{"class":194},"    // enum class：需要带作用域\n",[138,440,442,445,447,449],{"class":140,"line":441},16,[138,443,444],{"class":150},"    Color c ",[138,446,204],{"class":144},[138,448,357],{"class":318},[138,450,451],{"class":150},"::red;\n",[138,453,455],{"class":140,"line":454},17,[138,456,188],{"emptyLinePlaceholder":187},[138,458,460,463],{"class":140,"line":459},18,[138,461,462],{"class":194},"    // int m = Color::red;",[138,464,465],{"class":194},"  // ❌ 编译错误！不会隐式转换为 int\n",[138,467,469,471,474,476,479,482,485,488],{"class":140,"line":468},19,[138,470,417],{"class":144},[138,472,473],{"class":150}," m ",[138,475,204],{"class":144},[138,477,478],{"class":144}," static_cast\u003Cint>",[138,480,481],{"class":150},"(",[138,483,484],{"class":318},"Color",[138,486,487],{"class":150},"::red);",[138,489,490],{"class":194},"  // ✅ 显式转换\n",[138,492,494],{"class":140,"line":493},20,[138,495,188],{"emptyLinePlaceholder":187},[138,497,499,502,505,508,511,514,516,518,521,524,527],{"class":140,"line":498},21,[138,500,501],{"class":318},"    std",[138,503,504],{"class":150},"::cout ",[138,506,507],{"class":144},"\u003C\u003C",[138,509,510],{"class":301}," \"OldColor red = \"",[138,512,513],{"class":144}," \u003C\u003C",[138,515,420],{"class":150},[138,517,507],{"class":144},[138,519,520],{"class":301}," \"",[138,522,523],{"class":325},"\\n",[138,525,526],{"class":301},"\"",[138,528,529],{"class":150},";\n",[138,531,533,535,537,539,542,544,546,548,550,552,554],{"class":140,"line":532},22,[138,534,501],{"class":318},[138,536,504],{"class":150},[138,538,507],{"class":144},[138,540,541],{"class":301}," \"Color::red = \"",[138,543,513],{"class":144},[138,545,473],{"class":150},[138,547,507],{"class":144},[138,549,520],{"class":301},[138,551,523],{"class":325},[138,553,526],{"class":301},[138,555,529],{"class":150},[138,557,559],{"class":140,"line":558},23,[138,560,188],{"emptyLinePlaceholder":187},[138,562,564,567,570],{"class":140,"line":563},24,[138,565,566],{"class":144},"    return",[138,568,569],{"class":325}," 0",[138,571,529],{"class":150},[138,573,575],{"class":140,"line":574},25,[138,576,577],{"class":150},"}\n",[14,579,580,583],{},[29,581,582],{},"运行结果","：",[129,585,590],{"className":586,"code":588,"language":589},[587],"language-text","OldColor red = 0\nColor::red = 0\n","text",[18,591,588],{"__ignoreMap":134},[285,593,595],{"id":594},"示例-2在示例-1-基础上指定底层类型和自定义值","示例 2：在示例 1 基础上，指定底层类型和自定义值",[129,597,599],{"className":131,"code":598,"language":133,"meta":134,"style":134},"#include \u003Ccstdint>\n#include \u003Ciostream>\n\n// 指定底层类型为 uint8_t（只占一个字节）\nenum class Status : uint8_t\n{\n    Idle = 0,\n    Running = 10,\n    Paused = 20,\n    Stopped = 30\n};\n\nvoid print_status(Status s)\n{\n    switch (s)\n    {\n        case Status::Idle:\n            std::cout \u003C\u003C \"Idle\\n\";\n            break;\n        case Status::Running:\n            std::cout \u003C\u003C \"Running\\n\";\n            break;\n        case Status::Paused:\n            std::cout \u003C\u003C \"Paused\\n\";\n            break;\n        case Status::Stopped:\n            std::cout \u003C\u003C \"Stopped\\n\";\n            break;\n    }\n}\n\nint main()\n{\n    Status s1 = Status::Running;\n    print_status(s1);\n    print_status(Status::Stopped);\n\n    // 查看底层整数值\n    std::cout \u003C\u003C \"sizeof(Status) = \" \u003C\u003C sizeof(Status) \u003C\u003C \" byte(s)\\n\";\n    std::cout \u003C\u003C \"Running = \" \u003C\u003C static_cast\u003Cint>(Status::Running) \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[18,600,601,608,614,618,623,638,642,655,667,679,689,693,697,717,721,729,734,744,762,769,778,795,801,810,827,833,843,861,868,874,879,884,893,898,911,920,932,937,943,974,1007,1012,1021],{"__ignoreMap":134},[138,602,603,605],{"class":140,"line":141},[138,604,298],{"class":144},[138,606,607],{"class":301}," \u003Ccstdint>\n",[138,609,610,612],{"class":140,"line":154},[138,611,298],{"class":144},[138,613,302],{"class":301},[138,615,616],{"class":140,"line":160},[138,617,188],{"emptyLinePlaceholder":187},[138,619,620],{"class":140,"line":166},[138,621,622],{"class":194},"// 指定底层类型为 uint8_t（只占一个字节）\n",[138,624,625,627,629,632,635],{"class":140,"line":172},[138,626,20],{"class":144},[138,628,147],{"class":144},[138,630,631],{"class":318}," Status",[138,633,634],{"class":150}," : ",[138,636,637],{"class":144},"uint8_t\n",[138,639,640],{"class":140,"line":178},[138,641,157],{"class":150},[138,643,644,647,650,652],{"class":140,"line":184},[138,645,646],{"class":325},"    Idle",[138,648,649],{"class":144}," =",[138,651,569],{"class":325},[138,653,654],{"class":150},",\n",[138,656,657,660,662,665],{"class":140,"line":191},[138,658,659],{"class":325},"    Running",[138,661,649],{"class":144},[138,663,664],{"class":325}," 10",[138,666,654],{"class":150},[138,668,669,672,674,677],{"class":140,"line":198},[138,670,671],{"class":325},"    Paused",[138,673,649],{"class":144},[138,675,676],{"class":325}," 20",[138,678,654],{"class":150},[138,680,681,684,686],{"class":140,"line":389},[138,682,683],{"class":325},"    Stopped",[138,685,649],{"class":144},[138,687,688],{"class":325}," 30\n",[138,690,691],{"class":140,"line":394},[138,692,181],{"class":150},[138,694,695],{"class":140,"line":400},[138,696,188],{"emptyLinePlaceholder":187},[138,698,699,702,705,707,710,714],{"class":140,"line":414},[138,700,701],{"class":144},"void",[138,703,704],{"class":318}," print_status",[138,706,481],{"class":150},[138,708,709],{"class":318},"Status",[138,711,713],{"class":712},"s4XuR"," s",[138,715,716],{"class":150},")\n",[138,718,719],{"class":140,"line":430},[138,720,157],{"class":150},[138,722,723,726],{"class":140,"line":435},[138,724,725],{"class":144},"    switch",[138,727,728],{"class":150}," (s)\n",[138,730,731],{"class":140,"line":441},[138,732,733],{"class":150},"    {\n",[138,735,736,739,741],{"class":140,"line":454},[138,737,738],{"class":144},"        case",[138,740,631],{"class":318},[138,742,743],{"class":150},"::Idle:\n",[138,745,746,749,751,753,756,758,760],{"class":140,"line":459},[138,747,748],{"class":318},"            std",[138,750,504],{"class":150},[138,752,507],{"class":144},[138,754,755],{"class":301}," \"Idle",[138,757,523],{"class":325},[138,759,526],{"class":301},[138,761,529],{"class":150},[138,763,764,767],{"class":140,"line":468},[138,765,766],{"class":144},"            break",[138,768,529],{"class":150},[138,770,771,773,775],{"class":140,"line":493},[138,772,738],{"class":144},[138,774,631],{"class":318},[138,776,777],{"class":150},"::Running:\n",[138,779,780,782,784,786,789,791,793],{"class":140,"line":498},[138,781,748],{"class":318},[138,783,504],{"class":150},[138,785,507],{"class":144},[138,787,788],{"class":301}," \"Running",[138,790,523],{"class":325},[138,792,526],{"class":301},[138,794,529],{"class":150},[138,796,797,799],{"class":140,"line":532},[138,798,766],{"class":144},[138,800,529],{"class":150},[138,802,803,805,807],{"class":140,"line":558},[138,804,738],{"class":144},[138,806,631],{"class":318},[138,808,809],{"class":150},"::Paused:\n",[138,811,812,814,816,818,821,823,825],{"class":140,"line":563},[138,813,748],{"class":318},[138,815,504],{"class":150},[138,817,507],{"class":144},[138,819,820],{"class":301}," \"Paused",[138,822,523],{"class":325},[138,824,526],{"class":301},[138,826,529],{"class":150},[138,828,829,831],{"class":140,"line":574},[138,830,766],{"class":144},[138,832,529],{"class":150},[138,834,836,838,840],{"class":140,"line":835},26,[138,837,738],{"class":144},[138,839,631],{"class":318},[138,841,842],{"class":150},"::Stopped:\n",[138,844,846,848,850,852,855,857,859],{"class":140,"line":845},27,[138,847,748],{"class":318},[138,849,504],{"class":150},[138,851,507],{"class":144},[138,853,854],{"class":301}," \"Stopped",[138,856,523],{"class":325},[138,858,526],{"class":301},[138,860,529],{"class":150},[138,862,864,866],{"class":140,"line":863},28,[138,865,766],{"class":144},[138,867,529],{"class":150},[138,869,871],{"class":140,"line":870},29,[138,872,873],{"class":150},"    }\n",[138,875,877],{"class":140,"line":876},30,[138,878,577],{"class":150},[138,880,882],{"class":140,"line":881},31,[138,883,188],{"emptyLinePlaceholder":187},[138,885,887,889,891],{"class":140,"line":886},32,[138,888,380],{"class":144},[138,890,383],{"class":318},[138,892,386],{"class":150},[138,894,896],{"class":140,"line":895},33,[138,897,157],{"class":150},[138,899,901,904,906,908],{"class":140,"line":900},34,[138,902,903],{"class":150},"    Status s1 ",[138,905,204],{"class":144},[138,907,631],{"class":318},[138,909,910],{"class":150},"::Running;\n",[138,912,914,917],{"class":140,"line":913},35,[138,915,916],{"class":318},"    print_status",[138,918,919],{"class":150},"(s1);\n",[138,921,923,925,927,929],{"class":140,"line":922},36,[138,924,916],{"class":318},[138,926,481],{"class":150},[138,928,709],{"class":318},[138,930,931],{"class":150},"::Stopped);\n",[138,933,935],{"class":140,"line":934},37,[138,936,188],{"emptyLinePlaceholder":187},[138,938,940],{"class":140,"line":939},38,[138,941,942],{"class":194},"    // 查看底层整数值\n",[138,944,946,948,950,952,955,957,960,963,965,968,970,972],{"class":140,"line":945},39,[138,947,501],{"class":318},[138,949,504],{"class":150},[138,951,507],{"class":144},[138,953,954],{"class":301}," \"sizeof(Status) = \"",[138,956,513],{"class":144},[138,958,959],{"class":144}," sizeof",[138,961,962],{"class":150},"(Status) ",[138,964,507],{"class":144},[138,966,967],{"class":301}," \" byte(s)",[138,969,523],{"class":325},[138,971,526],{"class":301},[138,973,529],{"class":150},[138,975,977,979,981,983,986,988,990,992,994,997,999,1001,1003,1005],{"class":140,"line":976},40,[138,978,501],{"class":318},[138,980,504],{"class":150},[138,982,507],{"class":144},[138,984,985],{"class":301}," \"Running = \"",[138,987,513],{"class":144},[138,989,478],{"class":144},[138,991,481],{"class":150},[138,993,709],{"class":318},[138,995,996],{"class":150},"::Running) ",[138,998,507],{"class":144},[138,1000,520],{"class":301},[138,1002,523],{"class":325},[138,1004,526],{"class":301},[138,1006,529],{"class":150},[138,1008,1010],{"class":140,"line":1009},41,[138,1011,188],{"emptyLinePlaceholder":187},[138,1013,1015,1017,1019],{"class":140,"line":1014},42,[138,1016,566],{"class":144},[138,1018,569],{"class":325},[138,1020,529],{"class":150},[138,1022,1024],{"class":140,"line":1023},43,[138,1025,577],{"class":150},[14,1027,1028,583],{},[29,1029,582],{},[129,1031,1034],{"className":1032,"code":1033,"language":589},[587],"Running\nStopped\nsizeof(Status) = 1 byte(s)\nRunning = 10\n",[18,1035,1033],{"__ignoreMap":134},[285,1037,1039],{"id":1038},"示例-3在示例-2-基础上enum-class-在结构体中的应用","示例 3：在示例 2 基础上，enum class 在结构体中的应用",[129,1041,1043],{"className":131,"code":1042,"language":133,"meta":134,"style":134},"#include \u003Ciostream>\n#include \u003Cstring>\n\nenum class Grade\n{\n    A = 90,\n    B = 80,\n    C = 70,\n    D = 60,\n    F = 0\n};\n\nstruct Student\n{\n    std::string name;\n    Grade grade;\n};\n\nstd::string grade_to_string(Grade g)\n{\n    switch (g)\n    {\n        case Grade::A: return \"A (优秀)\";\n        case Grade::B: return \"B (良好)\";\n        case Grade::C: return \"C (中等)\";\n        case Grade::D: return \"D (及格)\";\n        case Grade::F: return \"F (不及格)\";\n        default:       return \"未知\";\n    }\n}\n\nint main()\n{\n    Student s1{\"Alice\", Grade::A};\n    Student s2{\"Bob\", Grade::C};\n\n    std::cout \u003C\u003C s1.name \u003C\u003C \" grade: \" \u003C\u003C grade_to_string(s1.grade) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C s2.name \u003C\u003C \" grade: \" \u003C\u003C grade_to_string(s2.grade) \u003C\u003C \"\\n\";\n\n    // 比较（enum class 支持 ==, \u003C, > 等）\n    if (s1.grade > s2.grade)\n    {\n        std::cout \u003C\u003C s1.name \u003C\u003C \" has higher grade\\n\";\n    }\n\n    return 0;\n}\n",[18,1044,1045,1051,1058,1062,1071,1075,1087,1099,1111,1123,1133,1137,1141,1149,1153,1160,1165,1169,1173,1197,1201,1208,1212,1230,1246,1262,1278,1294,1309,1313,1317,1321,1329,1333,1348,1363,1367,1400,1432,1436,1441,1455,1459,1481,1486,1491,1500],{"__ignoreMap":134},[138,1046,1047,1049],{"class":140,"line":141},[138,1048,298],{"class":144},[138,1050,302],{"class":301},[138,1052,1053,1055],{"class":140,"line":154},[138,1054,298],{"class":144},[138,1056,1057],{"class":301}," \u003Cstring>\n",[138,1059,1060],{"class":140,"line":160},[138,1061,188],{"emptyLinePlaceholder":187},[138,1063,1064,1066,1068],{"class":140,"line":166},[138,1065,20],{"class":144},[138,1067,147],{"class":144},[138,1069,1070],{"class":318}," Grade\n",[138,1072,1073],{"class":140,"line":172},[138,1074,157],{"class":150},[138,1076,1077,1080,1082,1085],{"class":140,"line":178},[138,1078,1079],{"class":325},"    A",[138,1081,649],{"class":144},[138,1083,1084],{"class":325}," 90",[138,1086,654],{"class":150},[138,1088,1089,1092,1094,1097],{"class":140,"line":184},[138,1090,1091],{"class":325},"    B",[138,1093,649],{"class":144},[138,1095,1096],{"class":325}," 80",[138,1098,654],{"class":150},[138,1100,1101,1104,1106,1109],{"class":140,"line":191},[138,1102,1103],{"class":325},"    C",[138,1105,649],{"class":144},[138,1107,1108],{"class":325}," 70",[138,1110,654],{"class":150},[138,1112,1113,1116,1118,1121],{"class":140,"line":198},[138,1114,1115],{"class":325},"    D",[138,1117,649],{"class":144},[138,1119,1120],{"class":325}," 60",[138,1122,654],{"class":150},[138,1124,1125,1128,1130],{"class":140,"line":389},[138,1126,1127],{"class":325},"    F",[138,1129,649],{"class":144},[138,1131,1132],{"class":325}," 0\n",[138,1134,1135],{"class":140,"line":394},[138,1136,181],{"class":150},[138,1138,1139],{"class":140,"line":400},[138,1140,188],{"emptyLinePlaceholder":187},[138,1142,1143,1146],{"class":140,"line":414},[138,1144,1145],{"class":144},"struct",[138,1147,1148],{"class":318}," Student\n",[138,1150,1151],{"class":140,"line":430},[138,1152,157],{"class":150},[138,1154,1155,1157],{"class":140,"line":435},[138,1156,501],{"class":318},[138,1158,1159],{"class":150},"::string name;\n",[138,1161,1162],{"class":140,"line":441},[138,1163,1164],{"class":150},"    Grade grade;\n",[138,1166,1167],{"class":140,"line":454},[138,1168,181],{"class":150},[138,1170,1171],{"class":140,"line":459},[138,1172,188],{"emptyLinePlaceholder":187},[138,1174,1175,1178,1181,1184,1187,1189,1192,1195],{"class":140,"line":468},[138,1176,1177],{"class":318},"std",[138,1179,1180],{"class":150},"::",[138,1182,1183],{"class":318},"string",[138,1185,1186],{"class":318}," grade_to_string",[138,1188,481],{"class":150},[138,1190,1191],{"class":318},"Grade",[138,1193,1194],{"class":712}," g",[138,1196,716],{"class":150},[138,1198,1199],{"class":140,"line":493},[138,1200,157],{"class":150},[138,1202,1203,1205],{"class":140,"line":498},[138,1204,725],{"class":144},[138,1206,1207],{"class":150}," (g)\n",[138,1209,1210],{"class":140,"line":532},[138,1211,733],{"class":150},[138,1213,1214,1216,1219,1222,1225,1228],{"class":140,"line":558},[138,1215,738],{"class":144},[138,1217,1218],{"class":318}," Grade",[138,1220,1221],{"class":150},"::A: ",[138,1223,1224],{"class":144},"return",[138,1226,1227],{"class":301}," \"A (优秀)\"",[138,1229,529],{"class":150},[138,1231,1232,1234,1236,1239,1241,1244],{"class":140,"line":563},[138,1233,738],{"class":144},[138,1235,1218],{"class":318},[138,1237,1238],{"class":150},"::B: ",[138,1240,1224],{"class":144},[138,1242,1243],{"class":301}," \"B (良好)\"",[138,1245,529],{"class":150},[138,1247,1248,1250,1252,1255,1257,1260],{"class":140,"line":574},[138,1249,738],{"class":144},[138,1251,1218],{"class":318},[138,1253,1254],{"class":150},"::C: ",[138,1256,1224],{"class":144},[138,1258,1259],{"class":301}," \"C (中等)\"",[138,1261,529],{"class":150},[138,1263,1264,1266,1268,1271,1273,1276],{"class":140,"line":835},[138,1265,738],{"class":144},[138,1267,1218],{"class":318},[138,1269,1270],{"class":150},"::D: ",[138,1272,1224],{"class":144},[138,1274,1275],{"class":301}," \"D (及格)\"",[138,1277,529],{"class":150},[138,1279,1280,1282,1284,1287,1289,1292],{"class":140,"line":845},[138,1281,738],{"class":144},[138,1283,1218],{"class":318},[138,1285,1286],{"class":150},"::F: ",[138,1288,1224],{"class":144},[138,1290,1291],{"class":301}," \"F (不及格)\"",[138,1293,529],{"class":150},[138,1295,1296,1299,1302,1304,1307],{"class":140,"line":863},[138,1297,1298],{"class":144},"        default",[138,1300,1301],{"class":150},":       ",[138,1303,1224],{"class":144},[138,1305,1306],{"class":301}," \"未知\"",[138,1308,529],{"class":150},[138,1310,1311],{"class":140,"line":870},[138,1312,873],{"class":150},[138,1314,1315],{"class":140,"line":876},[138,1316,577],{"class":150},[138,1318,1319],{"class":140,"line":881},[138,1320,188],{"emptyLinePlaceholder":187},[138,1322,1323,1325,1327],{"class":140,"line":886},[138,1324,380],{"class":144},[138,1326,383],{"class":318},[138,1328,386],{"class":150},[138,1330,1331],{"class":140,"line":895},[138,1332,157],{"class":150},[138,1334,1335,1338,1341,1343,1345],{"class":140,"line":900},[138,1336,1337],{"class":150},"    Student s1{",[138,1339,1340],{"class":301},"\"Alice\"",[138,1342,328],{"class":150},[138,1344,1191],{"class":318},[138,1346,1347],{"class":150},"::A};\n",[138,1349,1350,1353,1356,1358,1360],{"class":140,"line":913},[138,1351,1352],{"class":150},"    Student s2{",[138,1354,1355],{"class":301},"\"Bob\"",[138,1357,328],{"class":150},[138,1359,1191],{"class":318},[138,1361,1362],{"class":150},"::C};\n",[138,1364,1365],{"class":140,"line":922},[138,1366,188],{"emptyLinePlaceholder":187},[138,1368,1369,1371,1373,1375,1378,1380,1383,1385,1387,1390,1392,1394,1396,1398],{"class":140,"line":934},[138,1370,501],{"class":318},[138,1372,504],{"class":150},[138,1374,507],{"class":144},[138,1376,1377],{"class":150}," s1.name ",[138,1379,507],{"class":144},[138,1381,1382],{"class":301}," \" grade: \"",[138,1384,513],{"class":144},[138,1386,1186],{"class":318},[138,1388,1389],{"class":150},"(s1.grade) ",[138,1391,507],{"class":144},[138,1393,520],{"class":301},[138,1395,523],{"class":325},[138,1397,526],{"class":301},[138,1399,529],{"class":150},[138,1401,1402,1404,1406,1408,1411,1413,1415,1417,1419,1422,1424,1426,1428,1430],{"class":140,"line":939},[138,1403,501],{"class":318},[138,1405,504],{"class":150},[138,1407,507],{"class":144},[138,1409,1410],{"class":150}," s2.name ",[138,1412,507],{"class":144},[138,1414,1382],{"class":301},[138,1416,513],{"class":144},[138,1418,1186],{"class":318},[138,1420,1421],{"class":150},"(s2.grade) ",[138,1423,507],{"class":144},[138,1425,520],{"class":301},[138,1427,523],{"class":325},[138,1429,526],{"class":301},[138,1431,529],{"class":150},[138,1433,1434],{"class":140,"line":945},[138,1435,188],{"emptyLinePlaceholder":187},[138,1437,1438],{"class":140,"line":976},[138,1439,1440],{"class":194},"    // 比较（enum class 支持 ==, \u003C, > 等）\n",[138,1442,1443,1446,1449,1452],{"class":140,"line":1009},[138,1444,1445],{"class":144},"    if",[138,1447,1448],{"class":150}," (s1.grade ",[138,1450,1451],{"class":144},">",[138,1453,1454],{"class":150}," s2.grade)\n",[138,1456,1457],{"class":140,"line":1014},[138,1458,733],{"class":150},[138,1460,1461,1464,1466,1468,1470,1472,1475,1477,1479],{"class":140,"line":1023},[138,1462,1463],{"class":318},"        std",[138,1465,504],{"class":150},[138,1467,507],{"class":144},[138,1469,1377],{"class":150},[138,1471,507],{"class":144},[138,1473,1474],{"class":301}," \" has higher grade",[138,1476,523],{"class":325},[138,1478,526],{"class":301},[138,1480,529],{"class":150},[138,1482,1484],{"class":140,"line":1483},44,[138,1485,873],{"class":150},[138,1487,1489],{"class":140,"line":1488},45,[138,1490,188],{"emptyLinePlaceholder":187},[138,1492,1494,1496,1498],{"class":140,"line":1493},46,[138,1495,566],{"class":144},[138,1497,569],{"class":325},[138,1499,529],{"class":150},[138,1501,1503],{"class":140,"line":1502},47,[138,1504,577],{"class":150},[14,1506,1507,583],{},[29,1508,582],{},[129,1510,1513],{"className":1511,"code":1512,"language":589},[587],"Alice grade: A (优秀)\nBob grade: C (中等)\nAlice has higher grade\n",[18,1514,1512],{"__ignoreMap":134},[10,1516,582],{"id":582},[14,1518,1519],{},"见上方每个示例的\"运行结果\"。",[10,1521,1522],{"id":1522},"示例中的关键语法解释",[212,1524,1525,1544],{},[215,1526,1527],{},[218,1528,1529,1532,1535,1538,1541],{},[221,1530,1531],{"align":223},"示例",[221,1533,1534],{"align":223},"讲了什么",[221,1536,1537],{"align":223},"新出现的语法",[221,1539,1540],{"align":223},"为什么这样写",[221,1542,1543],{"align":223},"注意事项",[229,1545,1546,1568,1591],{},[218,1547,1548,1551,1554,1562,1565],{},[234,1549,1550],{"align":223},"示例 1",[234,1552,1553],{"align":223},"旧 enum 问题 vs enum class",[234,1555,1556,1558,1559],{"align":223},[18,1557,5],{},"、",[18,1560,1561],{},"static_cast\u003Cint>()",[234,1563,1564],{"align":223},"旧 enum 名字污染、隐式转 int；enum class 解决",[234,1566,1567],{"align":223},"需要整数值时必须显式转换",[218,1569,1570,1573,1576,1582,1585],{},[234,1571,1572],{"align":223},"示例 2",[234,1574,1575],{"align":223},"指定底层类型和 switch 用法",[234,1577,1578,1581],{"align":223},[18,1579,1580],{},"enum class : uint8_t","、switch + enum class",[234,1583,1584],{"align":223},"指定底层类型能节省内存（如嵌入式场景）",[234,1586,1587,1590],{"align":223},[18,1588,1589],{},"sizeof(enum class)"," 不等于成员个数",[218,1592,1593,1596,1599,1602,1605],{},[234,1594,1595],{"align":223},"示例 3",[234,1597,1598],{"align":223},"在 struct 中使用 enum class",[234,1600,1601],{"align":223},"enum class 做 struct 成员、比较操作",[234,1603,1604],{"align":223},"表示状态、等级等有限取值集合",[234,1606,1607,1608,328,1611,328,1614,1616],{"align":223},"enum class 支持 ",[18,1609,1610],{},"==",[18,1612,1613],{},"\u003C",[18,1615,1451],{}," 等比较",[10,1618,1620],{"id":1619},"enum-class-适合表示状态和选项","enum class 适合表示状态和选项",[14,1622,1623,1625],{},[18,1624,5],{}," 最适合表示“有限个离散取值”，比如机器人状态、任务阶段、通信协议命令、UI 模式。",[285,1627,1629],{"id":1628},"示例-4用-enum-class-表示机器人状态","示例 4：用 enum class 表示机器人状态",[129,1631,1633],{"className":131,"code":1632,"language":133,"meta":134,"style":134},"#include \u003Ciostream>\n\nenum class RobotState\n{\n    Idle,\n    Running,\n    Error\n};\n\nvoid handle_state(RobotState state)\n{\n    switch (state)\n    {\n        case RobotState::Idle:\n            std::cout \u003C\u003C \"wait for command\\n\";\n            break;\n        case RobotState::Running:\n            std::cout \u003C\u003C \"execute task\\n\";\n            break;\n        case RobotState::Error:\n            std::cout \u003C\u003C \"stop and report error\\n\";\n            break;\n    }\n}\n\nint main()\n{\n    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    RobotState state = RobotState::Running;\n    handle_state(state);\n\n    // 返回 0 表示程序正常结束。\n    return 0;\n}\n",[18,1634,1635,1641,1645,1654,1658,1664,1670,1675,1679,1683,1700,1704,1711,1715,1724,1741,1747,1755,1772,1778,1787,1804,1810,1814,1818,1822,1830,1834,1839,1850,1858,1862,1867,1875],{"__ignoreMap":134},[138,1636,1637,1639],{"class":140,"line":141},[138,1638,298],{"class":144},[138,1640,302],{"class":301},[138,1642,1643],{"class":140,"line":154},[138,1644,188],{"emptyLinePlaceholder":187},[138,1646,1647,1649,1651],{"class":140,"line":160},[138,1648,20],{"class":144},[138,1650,147],{"class":144},[138,1652,1653],{"class":318}," RobotState\n",[138,1655,1656],{"class":140,"line":166},[138,1657,157],{"class":150},[138,1659,1660,1662],{"class":140,"line":172},[138,1661,646],{"class":325},[138,1663,654],{"class":150},[138,1665,1666,1668],{"class":140,"line":178},[138,1667,659],{"class":325},[138,1669,654],{"class":150},[138,1671,1672],{"class":140,"line":184},[138,1673,1674],{"class":325},"    Error\n",[138,1676,1677],{"class":140,"line":191},[138,1678,181],{"class":150},[138,1680,1681],{"class":140,"line":198},[138,1682,188],{"emptyLinePlaceholder":187},[138,1684,1685,1687,1690,1692,1695,1698],{"class":140,"line":389},[138,1686,701],{"class":144},[138,1688,1689],{"class":318}," handle_state",[138,1691,481],{"class":150},[138,1693,1694],{"class":318},"RobotState",[138,1696,1697],{"class":712}," state",[138,1699,716],{"class":150},[138,1701,1702],{"class":140,"line":394},[138,1703,157],{"class":150},[138,1705,1706,1708],{"class":140,"line":400},[138,1707,725],{"class":144},[138,1709,1710],{"class":150}," (state)\n",[138,1712,1713],{"class":140,"line":414},[138,1714,733],{"class":150},[138,1716,1717,1719,1722],{"class":140,"line":430},[138,1718,738],{"class":144},[138,1720,1721],{"class":318}," RobotState",[138,1723,743],{"class":150},[138,1725,1726,1728,1730,1732,1735,1737,1739],{"class":140,"line":435},[138,1727,748],{"class":318},[138,1729,504],{"class":150},[138,1731,507],{"class":144},[138,1733,1734],{"class":301}," \"wait for command",[138,1736,523],{"class":325},[138,1738,526],{"class":301},[138,1740,529],{"class":150},[138,1742,1743,1745],{"class":140,"line":441},[138,1744,766],{"class":144},[138,1746,529],{"class":150},[138,1748,1749,1751,1753],{"class":140,"line":454},[138,1750,738],{"class":144},[138,1752,1721],{"class":318},[138,1754,777],{"class":150},[138,1756,1757,1759,1761,1763,1766,1768,1770],{"class":140,"line":459},[138,1758,748],{"class":318},[138,1760,504],{"class":150},[138,1762,507],{"class":144},[138,1764,1765],{"class":301}," \"execute task",[138,1767,523],{"class":325},[138,1769,526],{"class":301},[138,1771,529],{"class":150},[138,1773,1774,1776],{"class":140,"line":468},[138,1775,766],{"class":144},[138,1777,529],{"class":150},[138,1779,1780,1782,1784],{"class":140,"line":493},[138,1781,738],{"class":144},[138,1783,1721],{"class":318},[138,1785,1786],{"class":150},"::Error:\n",[138,1788,1789,1791,1793,1795,1798,1800,1802],{"class":140,"line":498},[138,1790,748],{"class":318},[138,1792,504],{"class":150},[138,1794,507],{"class":144},[138,1796,1797],{"class":301}," \"stop and report error",[138,1799,523],{"class":325},[138,1801,526],{"class":301},[138,1803,529],{"class":150},[138,1805,1806,1808],{"class":140,"line":532},[138,1807,766],{"class":144},[138,1809,529],{"class":150},[138,1811,1812],{"class":140,"line":558},[138,1813,873],{"class":150},[138,1815,1816],{"class":140,"line":563},[138,1817,577],{"class":150},[138,1819,1820],{"class":140,"line":574},[138,1821,188],{"emptyLinePlaceholder":187},[138,1823,1824,1826,1828],{"class":140,"line":835},[138,1825,380],{"class":144},[138,1827,383],{"class":318},[138,1829,386],{"class":150},[138,1831,1832],{"class":140,"line":845},[138,1833,157],{"class":150},[138,1835,1836],{"class":140,"line":863},[138,1837,1838],{"class":194},"    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[138,1840,1841,1844,1846,1848],{"class":140,"line":870},[138,1842,1843],{"class":150},"    RobotState state ",[138,1845,204],{"class":144},[138,1847,1721],{"class":318},[138,1849,910],{"class":150},[138,1851,1852,1855],{"class":140,"line":876},[138,1853,1854],{"class":318},"    handle_state",[138,1856,1857],{"class":150},"(state);\n",[138,1859,1860],{"class":140,"line":881},[138,1861,188],{"emptyLinePlaceholder":187},[138,1863,1864],{"class":140,"line":886},[138,1865,1866],{"class":194},"    // 返回 0 表示程序正常结束。\n",[138,1868,1869,1871,1873],{"class":140,"line":895},[138,1870,566],{"class":144},[138,1872,569],{"class":325},[138,1874,529],{"class":150},[138,1876,1877],{"class":140,"line":900},[138,1878,577],{"class":150},[14,1880,1881,583],{},[29,1882,582],{},[129,1884,1887],{"className":1885,"code":1886,"language":589},[587],"execute task\n",[18,1888,1886],{"__ignoreMap":134},[14,1890,1891,1892,1895,1896,1899,1900,1903,1904,1907],{},"如果用 ",[18,1893,1894],{},"int state = 1","，读代码的人不知道 ",[18,1897,1898],{},"1"," 是什么；如果用 ",[18,1901,1902],{},"enum class RobotState::Running","，语义直接写在类型里，而且不会和其他枚举的 ",[18,1905,1906],{},"Running"," 混用。",[10,1909,1910],{"id":1910},"常见错误",[14,1912,1913],{},[29,1914,1915],{},"错误 1：直接拿 enum class 值做数组下标",[129,1917,1919],{"className":131,"code":1918,"language":133,"meta":134,"style":134},"enum class Color { red, green, blue };\nint counts[3];\ncounts[Color::red];  // ❌ 编译错误！不会隐式转换\n",[18,1920,1921,1943,1956],{"__ignoreMap":134},[138,1922,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941],{"class":140,"line":141},[138,1924,20],{"class":144},[138,1926,147],{"class":144},[138,1928,357],{"class":318},[138,1930,322],{"class":150},[138,1932,39],{"class":325},[138,1934,328],{"class":150},[138,1936,331],{"class":325},[138,1938,328],{"class":150},[138,1940,336],{"class":325},[138,1942,339],{"class":150},[138,1944,1945,1947,1950,1953],{"class":140,"line":154},[138,1946,380],{"class":144},[138,1948,1949],{"class":150}," counts[",[138,1951,1952],{"class":325},"3",[138,1954,1955],{"class":150},"];\n",[138,1957,1958,1961,1963,1966],{"class":140,"line":160},[138,1959,1960],{"class":150},"counts[",[138,1962,484],{"class":318},[138,1964,1965],{"class":150},"::red];",[138,1967,1968],{"class":194},"  // ❌ 编译错误！不会隐式转换\n",[14,1970,1971,1972,1975],{},"正确做法：",[18,1973,1974],{},"counts[static_cast\u003Cint>(Color::red)]","，或者在这种场景考虑用 map。",[14,1977,1978],{},[29,1979,1980],{},"错误 2：忘记写作用域前缀",[129,1982,1984],{"className":131,"code":1983,"language":133,"meta":134,"style":134},"enum class Status { Running, Stopped };\nStatus s = Running;  // ❌ 编译错误！缺少 Status::\n",[18,1985,1986,2005],{"__ignoreMap":134},[138,1987,1988,1990,1992,1994,1996,1998,2000,2003],{"class":140,"line":141},[138,1989,20],{"class":144},[138,1991,147],{"class":144},[138,1993,631],{"class":318},[138,1995,322],{"class":150},[138,1997,1906],{"class":325},[138,1999,328],{"class":150},[138,2001,2002],{"class":325},"Stopped",[138,2004,339],{"class":150},[138,2006,2007,2010,2012,2015],{"class":140,"line":154},[138,2008,2009],{"class":150},"Status s ",[138,2011,204],{"class":144},[138,2013,2014],{"class":150}," Running;",[138,2016,2017],{"class":194},"  // ❌ 编译错误！缺少 Status::\n",[14,2019,1971,2020],{},[18,2021,2022],{},"Status s = Status::Running;",[14,2024,2025],{},[29,2026,2027],{},"错误 3：switch 中混用不同 enum class 的值",[129,2029,2031],{"className":131,"code":2030,"language":133,"meta":134,"style":134},"switch (status)\n{\n    case Status::Running:  // ✅ 正确\n    case Machine::Running: // ❌ 编译错误！不同枚举类型\n        break;\n}\n",[18,2032,2033,2041,2045,2062,2078,2085],{"__ignoreMap":134},[138,2034,2035,2038],{"class":140,"line":141},[138,2036,2037],{"class":144},"switch",[138,2039,2040],{"class":150}," (status)\n",[138,2042,2043],{"class":140,"line":154},[138,2044,157],{"class":150},[138,2046,2047,2050,2052,2054,2056,2059],{"class":140,"line":160},[138,2048,2049],{"class":144},"    case",[138,2051,631],{"class":318},[138,2053,1180],{"class":150},[138,2055,1906],{"class":318},[138,2057,2058],{"class":150},":",[138,2060,2061],{"class":194},"  // ✅ 正确\n",[138,2063,2064,2066,2069,2071,2073,2075],{"class":140,"line":166},[138,2065,2049],{"class":144},[138,2067,2068],{"class":318}," Machine",[138,2070,1180],{"class":150},[138,2072,1906],{"class":318},[138,2074,2058],{"class":150},[138,2076,2077],{"class":194}," // ❌ 编译错误！不同枚举类型\n",[138,2079,2080,2083],{"class":140,"line":172},[138,2081,2082],{"class":144},"        break",[138,2084,529],{"class":150},[138,2086,2087],{"class":140,"line":178},[138,2088,577],{"class":150},[14,2090,2091],{},"正确做法：switch 中 case 必须和 switch 表达式是同一枚举类型。",[10,2093,2094],{"id":2094},"使用建议",[23,2096,2097,2108,2117,2126],{},[26,2098,2099,2107],{},[29,2100,2101,2102,2104,2105],{},"永远用 ",[18,2103,5],{}," 而不是旧的 ",[18,2106,20],{},"：类型安全、作用域清晰。",[26,2109,2110,2113,2114,2116],{},[29,2111,2112],{},"可以指定底层类型","：嵌入式场景用 ",[18,2115,1580],{}," 节省空间。",[26,2118,2119,2125],{},[29,2120,2121,2122],{},"需要整数值时显式用 ",[18,2123,2124],{},"static_cast","：不要指望隐式转换。",[26,2127,2128,2131,2132,2135],{},[29,2129,2130],{},"enum class 仍然是整数，可以 switch","：配合 ",[18,2133,2134],{},"default"," 分支处理未知值。",[10,2137,2138],{"id":2138},"小结",[71,2140,2141,2149,2155,2161],{},[26,2142,2143,2145,2146,83],{},[18,2144,5],{}," 避免名字污染，枚举值通过 ",[18,2147,2148],{},"枚举名::值",[26,2150,2151,2152,2154],{},"不会隐式转换为整数，需要 ",[18,2153,2124],{}," 显式转换。",[26,2156,2157,2158,100],{},"可以指定底层类型（",[18,2159,2160],{},"enum class E : uint8_t",[26,2162,2163],{},"适用于表示状态、等级、选项等有限的离散取值集合。",[2165,2166,2167],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":134,"searchDepth":154,"depth":154,"links":2169},[2170,2171,2172,2173,2174,2175,2176,2181,2182,2183,2186,2187,2188],{"id":12,"depth":154,"text":12},{"id":64,"depth":154,"text":64},{"id":103,"depth":154,"text":104},{"id":110,"depth":154,"text":110},{"id":127,"depth":154,"text":127},{"id":210,"depth":154,"text":210},{"id":283,"depth":154,"text":283,"children":2177},[2178,2179,2180],{"id":287,"depth":160,"text":288},{"id":594,"depth":160,"text":595},{"id":1038,"depth":160,"text":1039},{"id":582,"depth":154,"text":582},{"id":1522,"depth":154,"text":1522},{"id":1619,"depth":154,"text":1620,"children":2184},[2185],{"id":1628,"depth":160,"text":1629},{"id":1910,"depth":154,"text":1910},{"id":2094,"depth":154,"text":2094},{"id":2138,"depth":154,"text":2138},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","18.4",18040000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","zh-CN","zh-cn",{},{"title":5,"description":134},"t1VvzCWwH3jAjoK8PEwwYuBCQWw29TRk7TglOpNAe74",[2208,2213,2219,2225,2231,2237,2243,2249,2255,2261,2267,2273,2279,2285,2291,2297,2303,2309,2315,2321,2327,2333,2339,2345,2351,2357,2363,2369,2375,2381,2387,2393,2399,2405,2411,2417,2423,2429,2435,2441,2447,2453,2459,2460,2466,2472,2478,2484,2490,2496,2502,2508,2514,2520,2526,2532,2538,2544,2550,2556,2562,2568,2574,2579,2585,2591,2597,2603,2609,2615],{"path":2209,"stem":2210,"title":2211,"date":2192,"chapter":1898,"chapterSort":2212,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识",1000000,{"path":2214,"stem":2215,"title":2216,"date":2192,"chapter":2217,"chapterSort":2218,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期","10",10000000,{"path":2220,"stem":2221,"title":2222,"date":2192,"chapter":2223,"chapterSort":2224,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":2226,"stem":2227,"title":2228,"date":2192,"chapter":2229,"chapterSort":2230,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":2232,"stem":2233,"title":2234,"date":2192,"chapter":2235,"chapterSort":2236,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":2238,"stem":2239,"title":2240,"date":2192,"chapter":2241,"chapterSort":2242,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":2244,"stem":2245,"title":2246,"date":2192,"chapter":2247,"chapterSort":2248,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":2250,"stem":2251,"title":2252,"date":2192,"chapter":2253,"chapterSort":2254,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":2256,"stem":2257,"title":2258,"date":2192,"chapter":2259,"chapterSort":2260,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":2262,"stem":2263,"title":2264,"date":2192,"chapter":2265,"chapterSort":2266,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":2268,"stem":2269,"title":2270,"date":2192,"chapter":2271,"chapterSort":2272,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":2274,"stem":2275,"title":2276,"date":2192,"chapter":2277,"chapterSort":2278,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":2280,"stem":2281,"title":2282,"date":2192,"chapter":2283,"chapterSort":2284,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":2286,"stem":2287,"title":2288,"date":2192,"chapter":2289,"chapterSort":2290,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":2292,"stem":2293,"title":2294,"date":2192,"chapter":2295,"chapterSort":2296,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":2298,"stem":2299,"title":2300,"date":2192,"chapter":2301,"chapterSort":2302,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":2304,"stem":2305,"title":2306,"date":2192,"chapter":2307,"chapterSort":2308,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":2310,"stem":2311,"title":2312,"date":2192,"chapter":2313,"chapterSort":2314,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":2316,"stem":2317,"title":2318,"date":2192,"chapter":2319,"chapterSort":2320,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":2322,"stem":2323,"title":2324,"date":2192,"chapter":2325,"chapterSort":2326,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":2328,"stem":2329,"title":2330,"date":2192,"chapter":2331,"chapterSort":2332,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":2334,"stem":2335,"title":2336,"date":2192,"chapter":2337,"chapterSort":2338,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":2340,"stem":2341,"title":2342,"date":2192,"chapter":2343,"chapterSort":2344,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":2346,"stem":2347,"title":2348,"date":2192,"chapter":2349,"chapterSort":2350,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","auto","18.1",18010000,{"path":2352,"stem":2353,"title":2354,"date":2192,"chapter":2355,"chapterSort":2356,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":2358,"stem":2359,"title":2360,"date":2192,"chapter":2361,"chapterSort":2362,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":2364,"stem":2365,"title":2366,"date":2192,"chapter":2367,"chapterSort":2368,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":2370,"stem":2371,"title":2372,"date":2192,"chapter":2373,"chapterSort":2374,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":2376,"stem":2377,"title":2378,"date":2192,"chapter":2379,"chapterSort":2380,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":2382,"stem":2383,"title":2384,"date":2192,"chapter":2385,"chapterSort":2386,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":2388,"stem":2389,"title":2390,"date":2192,"chapter":2391,"chapterSort":2392,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":2394,"stem":2395,"title":2396,"date":2192,"chapter":2397,"chapterSort":2398,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":2400,"stem":2401,"title":2402,"date":2192,"chapter":2403,"chapterSort":2404,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":2406,"stem":2407,"title":2408,"date":2192,"chapter":2409,"chapterSort":2410,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":2412,"stem":2413,"title":2414,"date":2192,"chapter":2415,"chapterSort":2416,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":2418,"stem":2419,"title":2420,"date":2192,"chapter":2421,"chapterSort":2422,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":2424,"stem":2425,"title":2426,"date":2192,"chapter":2427,"chapterSort":2428,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":2430,"stem":2431,"title":2432,"date":2192,"chapter":2433,"chapterSort":2434,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":2436,"stem":2437,"title":2438,"date":2192,"chapter":2439,"chapterSort":2440,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":2442,"stem":2443,"title":2444,"date":2192,"chapter":2445,"chapterSort":2446,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":2448,"stem":2449,"title":2450,"date":2192,"chapter":2451,"chapterSort":2452,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":2454,"stem":2455,"title":2456,"date":2192,"chapter":2457,"chapterSort":2458,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":2189,"stem":2198,"title":5,"date":2192,"chapter":2190,"chapterSort":2191,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},{"path":2461,"stem":2462,"title":2463,"date":2192,"chapter":2464,"chapterSort":2465,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":2467,"stem":2468,"title":2469,"date":2192,"chapter":2470,"chapterSort":2471,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":2473,"stem":2474,"title":2475,"date":2192,"chapter":2476,"chapterSort":2477,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":2479,"stem":2480,"title":2481,"date":2192,"chapter":2482,"chapterSort":2483,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":2485,"stem":2486,"title":2487,"date":2192,"chapter":2488,"chapterSort":2489,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":2491,"stem":2492,"title":2493,"date":2192,"chapter":2494,"chapterSort":2495,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++","18",18000000,{"path":2497,"stem":2498,"title":2499,"date":2192,"chapter":2500,"chapterSort":2501,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":2503,"stem":2504,"title":2505,"date":2192,"chapter":2506,"chapterSort":2507,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":2509,"stem":2510,"title":2511,"date":2192,"chapter":2512,"chapterSort":2513,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":2515,"stem":2516,"title":2517,"date":2192,"chapter":2518,"chapterSort":2519,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":2521,"stem":2522,"title":2523,"date":2192,"chapter":2524,"chapterSort":2525,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":2527,"stem":2528,"title":2529,"date":2192,"chapter":2530,"chapterSort":2531,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":2533,"stem":2534,"title":2535,"date":2192,"chapter":2536,"chapterSort":2537,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":2539,"stem":2540,"title":2541,"date":2192,"chapter":2542,"chapterSort":2543,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":2545,"stem":2546,"title":2547,"date":2192,"chapter":2548,"chapterSort":2549,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":2551,"stem":2552,"title":2553,"date":2192,"chapter":2554,"chapterSort":2555,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":2557,"stem":2558,"title":2559,"date":2192,"chapter":2560,"chapterSort":2561,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":2563,"stem":2564,"title":2565,"date":2192,"chapter":2566,"chapterSort":2567,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":2569,"stem":2570,"title":2571,"date":2192,"chapter":2572,"chapterSort":2573,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放","2",2000000,{"path":2575,"stem":2576,"title":2577,"date":2192,"chapter":1952,"chapterSort":2578,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出",3000000,{"path":2580,"stem":2581,"title":2582,"date":2192,"chapter":2583,"chapterSort":2584,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":2586,"stem":2587,"title":2588,"date":2192,"chapter":2589,"chapterSort":2590,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":2592,"stem":2593,"title":2594,"date":2192,"chapter":2595,"chapterSort":2596,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":2598,"stem":2599,"title":2600,"date":2192,"chapter":2601,"chapterSort":2602,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":2604,"stem":2605,"title":2606,"date":2192,"chapter":2607,"chapterSort":2608,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":2610,"stem":2611,"title":2612,"date":2192,"chapter":2613,"chapterSort":2614,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":2199},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":2195,"stem":2616,"title":2617,"date":2192,"chapter":2200,"chapterSort":2618,"docKey":2194,"docRoot":2195,"docTitle":2196,"isWikiDoc":187,"isWikiIndex":187},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":2620},[2621,2624,2627,2630,2633],{"path":2622,"localeSlug":2623,"i18nKey":2198},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","en-us",{"path":2625,"localeSlug":2626,"i18nKey":2198},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","zh-hant",{"path":2628,"localeSlug":2629,"i18nKey":2198},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","zh-hk",{"path":2631,"localeSlug":2632,"i18nKey":2198},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","zh-tw",{"path":2189,"localeSlug":2203,"i18nKey":2198},[2622,2201,2625,2201,2628,2201,2631,2201,2189,2201],1780663034793]