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