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