[{"data":1,"prerenderedAt":4610},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng":4181,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng":4594,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng":4609},{"id":4,"title":5,"body":6,"canonicalPath":4163,"chapter":4164,"chapterSort":4165,"date":4166,"description":56,"docI18nKey":4167,"docKey":4168,"docRoot":4169,"docTitle":4170,"extension":4171,"i18nKey":4172,"isBlogPost":4173,"isWikiDoc":570,"isWikiIndex":4173,"layout":4174,"legacyPath":4175,"locale":4176,"localeSlug":4177,"meta":4178,"navigation":570,"path":4163,"seo":4179,"sourcePath":4175,"sourceStem":4172,"stem":4172,"wikiDepth":64,"__hash__":4180},"content/wiki/2023-10-05-Cplusplus教学/ch13-5-继承.md","继承",{"type":7,"value":8,"toc":4160},"minimark",[9,12,19,22,29,32,35,39,42,45,50,889,895,900,1450,1455,1460,1463,1466,1469,1472,1478,1481,1484,1487,1493,1498,1511,1516,1521,2011,2016,2019,2022,2026,2203,2208,2211,2217,2220,2223,2226,2232,2238,2241,2244,2247,2251,2493,2497,2502,2505,2508,2516,2520,2901,2905,2907,2919,2922,2925,2928,2934,2938,3459,3463,3468,3471,3477,3483,3486,3491,3495,3829,3833,3838,3841,3846,3849,3852,3855,3860,3866,3871,3886,3890,4142,4146,4148,4156],[10,11,5],"h3",{"id":5},[13,14,15],"p",{},[16,17,18],"strong",{},"继承是面向对象三大特性之一",[13,20,21],{},"有些类与类之间存在特殊的关系，例如下图中：",[13,23,24],{},[25,26],"img",{"alt":27,"src":28},"1544861202252","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/10/05/stage3-1544861202252-f2305d08e7.webp",[13,30,31],{},"我们发现，定义这些类时，下级别的成员除了拥有上一级的共性，还有自己的特性。",[13,33,34],{},"这个时候我们就可以考虑利用继承的技术，减少重复代码",[36,37,38],"h4",{"id":38},"继承的基本语法",[13,40,41],{},"例如我们看到很多网站中，都有公共的头部，公共的底部，甚至公共的左侧列表，只有中心内容不同",[13,43,44],{},"接下来我们分别利用普通写法和继承的写法来实现网页中的内容，看一下继承存在的意义以及好处",[13,46,47],{},[16,48,49],{},"普通实现：",[51,52,57],"pre",{"className":53,"code":54,"language":55,"meta":56,"style":56},"language-cpp shiki shiki-themes github-light github-dark","//Java页面\nclass Java \n{\npublic:\n    void header()\n    {\n        cout \u003C\u003C \"首页、公开课、登录、注册...（公共头部）\" \u003C\u003C endl;\n    }\n    void footer()\n    {\n        cout \u003C\u003C \"帮助中心、交流合作、站内地图...(公共底部)\" \u003C\u003C endl;\n    }\n    void left()\n    {\n        cout \u003C\u003C \"Java,Python,C++...(公共分类列表)\" \u003C\u003C endl;\n    }\n    void content()\n    {\n        cout \u003C\u003C \"JAVA学科视频\" \u003C\u003C endl;\n    }\n};\n//Python页面\nclass Python\n{\npublic:\n    void header()\n    {\n        cout \u003C\u003C \"首页、公开课、登录、注册...（公共头部）\" \u003C\u003C endl;\n    }\n    void footer()\n    {\n        cout \u003C\u003C \"帮助中心、交流合作、站内地图...(公共底部)\" \u003C\u003C endl;\n    }\n    void left()\n    {\n        cout \u003C\u003C \"Java,Python,C++...(公共分类列表)\" \u003C\u003C endl;\n    }\n    void content()\n    {\n        cout \u003C\u003C \"Python学科视频\" \u003C\u003C endl;\n    }\n};\n//C++页面\nclass CPP \n{\npublic:\n    void header()\n    {\n        cout \u003C\u003C \"首页、公开课、登录、注册...（公共头部）\" \u003C\u003C endl;\n    }\n    void footer()\n    {\n        cout \u003C\u003C \"帮助中心、交流合作、站内地图...(公共底部)\" \u003C\u003C endl;\n    }\n    void left()\n    {\n        cout \u003C\u003C \"Java,Python,C++...(公共分类列表)\" \u003C\u003C endl;\n    }\n    void content()\n    {\n        cout \u003C\u003C \"C++学科视频\" \u003C\u003C endl;\n    }\n};\n\nvoid test01()\n{\n    //Java页面\n    cout \u003C\u003C \"Java下载视频页面如下： \" \u003C\u003C endl;\n    Java ja;\n    ja.header();\n    ja.footer();\n    ja.left();\n    ja.content();\n    cout \u003C\u003C \"--------------------\" \u003C\u003C endl;\n\n    //Python页面\n    cout \u003C\u003C \"Python下载视频页面如下： \" \u003C\u003C endl;\n    Python py;\n    py.header();\n    py.footer();\n    py.left();\n    py.content();\n    cout \u003C\u003C \"--------------------\" \u003C\u003C endl;\n\n    //C++页面\n    cout \u003C\u003C \"C++下载视频页面如下： \" \u003C\u003C endl;\n    CPP cp;\n    cp.header();\n    cp.footer();\n    cp.left();\n    cp.content();\n\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n","cpp","",[58,59,60,69,84,90,96,108,114,133,139,149,154,168,173,183,188,202,207,217,222,236,241,247,253,261,266,271,280,285,298,303,312,317,330,335,344,349,362,367,376,381,395,400,405,411,421,426,431,440,445,458,463,472,477,490,495,504,509,522,527,536,541,555,560,565,572,583,588,594,609,615,627,637,647,657,671,676,682,696,702,712,721,730,739,752,757,763,777,783,793,802,811,820,825,831,836,848,853,861,866,871,884],"code",{"__ignoreMap":56},[61,62,65],"span",{"class":63,"line":64},"line",1,[61,66,68],{"class":67},"sJ8bj","//Java页面\n",[61,70,72,76,80],{"class":63,"line":71},2,[61,73,75],{"class":74},"szBVR","class",[61,77,79],{"class":78},"sScJk"," Java",[61,81,83],{"class":82},"sVt8B"," \n",[61,85,87],{"class":63,"line":86},3,[61,88,89],{"class":82},"{\n",[61,91,93],{"class":63,"line":92},4,[61,94,95],{"class":74},"public:\n",[61,97,99,102,105],{"class":63,"line":98},5,[61,100,101],{"class":74},"    void",[61,103,104],{"class":78}," header",[61,106,107],{"class":82},"()\n",[61,109,111],{"class":63,"line":110},6,[61,112,113],{"class":82},"    {\n",[61,115,117,120,123,127,130],{"class":63,"line":116},7,[61,118,119],{"class":82},"        cout ",[61,121,122],{"class":74},"\u003C\u003C",[61,124,126],{"class":125},"sZZnC"," \"首页、公开课、登录、注册...（公共头部）\"",[61,128,129],{"class":74}," \u003C\u003C",[61,131,132],{"class":82}," endl;\n",[61,134,136],{"class":63,"line":135},8,[61,137,138],{"class":82},"    }\n",[61,140,142,144,147],{"class":63,"line":141},9,[61,143,101],{"class":74},[61,145,146],{"class":78}," footer",[61,148,107],{"class":82},[61,150,152],{"class":63,"line":151},10,[61,153,113],{"class":82},[61,155,157,159,161,164,166],{"class":63,"line":156},11,[61,158,119],{"class":82},[61,160,122],{"class":74},[61,162,163],{"class":125}," \"帮助中心、交流合作、站内地图...(公共底部)\"",[61,165,129],{"class":74},[61,167,132],{"class":82},[61,169,171],{"class":63,"line":170},12,[61,172,138],{"class":82},[61,174,176,178,181],{"class":63,"line":175},13,[61,177,101],{"class":74},[61,179,180],{"class":78}," left",[61,182,107],{"class":82},[61,184,186],{"class":63,"line":185},14,[61,187,113],{"class":82},[61,189,191,193,195,198,200],{"class":63,"line":190},15,[61,192,119],{"class":82},[61,194,122],{"class":74},[61,196,197],{"class":125}," \"Java,Python,C++...(公共分类列表)\"",[61,199,129],{"class":74},[61,201,132],{"class":82},[61,203,205],{"class":63,"line":204},16,[61,206,138],{"class":82},[61,208,210,212,215],{"class":63,"line":209},17,[61,211,101],{"class":74},[61,213,214],{"class":78}," content",[61,216,107],{"class":82},[61,218,220],{"class":63,"line":219},18,[61,221,113],{"class":82},[61,223,225,227,229,232,234],{"class":63,"line":224},19,[61,226,119],{"class":82},[61,228,122],{"class":74},[61,230,231],{"class":125}," \"JAVA学科视频\"",[61,233,129],{"class":74},[61,235,132],{"class":82},[61,237,239],{"class":63,"line":238},20,[61,240,138],{"class":82},[61,242,244],{"class":63,"line":243},21,[61,245,246],{"class":82},"};\n",[61,248,250],{"class":63,"line":249},22,[61,251,252],{"class":67},"//Python页面\n",[61,254,256,258],{"class":63,"line":255},23,[61,257,75],{"class":74},[61,259,260],{"class":78}," Python\n",[61,262,264],{"class":63,"line":263},24,[61,265,89],{"class":82},[61,267,269],{"class":63,"line":268},25,[61,270,95],{"class":74},[61,272,274,276,278],{"class":63,"line":273},26,[61,275,101],{"class":74},[61,277,104],{"class":78},[61,279,107],{"class":82},[61,281,283],{"class":63,"line":282},27,[61,284,113],{"class":82},[61,286,288,290,292,294,296],{"class":63,"line":287},28,[61,289,119],{"class":82},[61,291,122],{"class":74},[61,293,126],{"class":125},[61,295,129],{"class":74},[61,297,132],{"class":82},[61,299,301],{"class":63,"line":300},29,[61,302,138],{"class":82},[61,304,306,308,310],{"class":63,"line":305},30,[61,307,101],{"class":74},[61,309,146],{"class":78},[61,311,107],{"class":82},[61,313,315],{"class":63,"line":314},31,[61,316,113],{"class":82},[61,318,320,322,324,326,328],{"class":63,"line":319},32,[61,321,119],{"class":82},[61,323,122],{"class":74},[61,325,163],{"class":125},[61,327,129],{"class":74},[61,329,132],{"class":82},[61,331,333],{"class":63,"line":332},33,[61,334,138],{"class":82},[61,336,338,340,342],{"class":63,"line":337},34,[61,339,101],{"class":74},[61,341,180],{"class":78},[61,343,107],{"class":82},[61,345,347],{"class":63,"line":346},35,[61,348,113],{"class":82},[61,350,352,354,356,358,360],{"class":63,"line":351},36,[61,353,119],{"class":82},[61,355,122],{"class":74},[61,357,197],{"class":125},[61,359,129],{"class":74},[61,361,132],{"class":82},[61,363,365],{"class":63,"line":364},37,[61,366,138],{"class":82},[61,368,370,372,374],{"class":63,"line":369},38,[61,371,101],{"class":74},[61,373,214],{"class":78},[61,375,107],{"class":82},[61,377,379],{"class":63,"line":378},39,[61,380,113],{"class":82},[61,382,384,386,388,391,393],{"class":63,"line":383},40,[61,385,119],{"class":82},[61,387,122],{"class":74},[61,389,390],{"class":125}," \"Python学科视频\"",[61,392,129],{"class":74},[61,394,132],{"class":82},[61,396,398],{"class":63,"line":397},41,[61,399,138],{"class":82},[61,401,403],{"class":63,"line":402},42,[61,404,246],{"class":82},[61,406,408],{"class":63,"line":407},43,[61,409,410],{"class":67},"//C++页面\n",[61,412,414,416,419],{"class":63,"line":413},44,[61,415,75],{"class":74},[61,417,418],{"class":78}," CPP",[61,420,83],{"class":82},[61,422,424],{"class":63,"line":423},45,[61,425,89],{"class":82},[61,427,429],{"class":63,"line":428},46,[61,430,95],{"class":74},[61,432,434,436,438],{"class":63,"line":433},47,[61,435,101],{"class":74},[61,437,104],{"class":78},[61,439,107],{"class":82},[61,441,443],{"class":63,"line":442},48,[61,444,113],{"class":82},[61,446,448,450,452,454,456],{"class":63,"line":447},49,[61,449,119],{"class":82},[61,451,122],{"class":74},[61,453,126],{"class":125},[61,455,129],{"class":74},[61,457,132],{"class":82},[61,459,461],{"class":63,"line":460},50,[61,462,138],{"class":82},[61,464,466,468,470],{"class":63,"line":465},51,[61,467,101],{"class":74},[61,469,146],{"class":78},[61,471,107],{"class":82},[61,473,475],{"class":63,"line":474},52,[61,476,113],{"class":82},[61,478,480,482,484,486,488],{"class":63,"line":479},53,[61,481,119],{"class":82},[61,483,122],{"class":74},[61,485,163],{"class":125},[61,487,129],{"class":74},[61,489,132],{"class":82},[61,491,493],{"class":63,"line":492},54,[61,494,138],{"class":82},[61,496,498,500,502],{"class":63,"line":497},55,[61,499,101],{"class":74},[61,501,180],{"class":78},[61,503,107],{"class":82},[61,505,507],{"class":63,"line":506},56,[61,508,113],{"class":82},[61,510,512,514,516,518,520],{"class":63,"line":511},57,[61,513,119],{"class":82},[61,515,122],{"class":74},[61,517,197],{"class":125},[61,519,129],{"class":74},[61,521,132],{"class":82},[61,523,525],{"class":63,"line":524},58,[61,526,138],{"class":82},[61,528,530,532,534],{"class":63,"line":529},59,[61,531,101],{"class":74},[61,533,214],{"class":78},[61,535,107],{"class":82},[61,537,539],{"class":63,"line":538},60,[61,540,113],{"class":82},[61,542,544,546,548,551,553],{"class":63,"line":543},61,[61,545,119],{"class":82},[61,547,122],{"class":74},[61,549,550],{"class":125}," \"C++学科视频\"",[61,552,129],{"class":74},[61,554,132],{"class":82},[61,556,558],{"class":63,"line":557},62,[61,559,138],{"class":82},[61,561,563],{"class":63,"line":562},63,[61,564,246],{"class":82},[61,566,568],{"class":63,"line":567},64,[61,569,571],{"emptyLinePlaceholder":570},true,"\n",[61,573,575,578,581],{"class":63,"line":574},65,[61,576,577],{"class":74},"void",[61,579,580],{"class":78}," test01",[61,582,107],{"class":82},[61,584,586],{"class":63,"line":585},66,[61,587,89],{"class":82},[61,589,591],{"class":63,"line":590},67,[61,592,593],{"class":67},"    //Java页面\n",[61,595,597,600,602,605,607],{"class":63,"line":596},68,[61,598,599],{"class":82},"    cout ",[61,601,122],{"class":74},[61,603,604],{"class":125}," \"Java下载视频页面如下： \"",[61,606,129],{"class":74},[61,608,132],{"class":82},[61,610,612],{"class":63,"line":611},69,[61,613,614],{"class":82},"    Java ja;\n",[61,616,618,621,624],{"class":63,"line":617},70,[61,619,620],{"class":82},"    ja.",[61,622,623],{"class":78},"header",[61,625,626],{"class":82},"();\n",[61,628,630,632,635],{"class":63,"line":629},71,[61,631,620],{"class":82},[61,633,634],{"class":78},"footer",[61,636,626],{"class":82},[61,638,640,642,645],{"class":63,"line":639},72,[61,641,620],{"class":82},[61,643,644],{"class":78},"left",[61,646,626],{"class":82},[61,648,650,652,655],{"class":63,"line":649},73,[61,651,620],{"class":82},[61,653,654],{"class":78},"content",[61,656,626],{"class":82},[61,658,660,662,664,667,669],{"class":63,"line":659},74,[61,661,599],{"class":82},[61,663,122],{"class":74},[61,665,666],{"class":125}," \"--------------------\"",[61,668,129],{"class":74},[61,670,132],{"class":82},[61,672,674],{"class":63,"line":673},75,[61,675,571],{"emptyLinePlaceholder":570},[61,677,679],{"class":63,"line":678},76,[61,680,681],{"class":67},"    //Python页面\n",[61,683,685,687,689,692,694],{"class":63,"line":684},77,[61,686,599],{"class":82},[61,688,122],{"class":74},[61,690,691],{"class":125}," \"Python下载视频页面如下： \"",[61,693,129],{"class":74},[61,695,132],{"class":82},[61,697,699],{"class":63,"line":698},78,[61,700,701],{"class":82},"    Python py;\n",[61,703,705,708,710],{"class":63,"line":704},79,[61,706,707],{"class":82},"    py.",[61,709,623],{"class":78},[61,711,626],{"class":82},[61,713,715,717,719],{"class":63,"line":714},80,[61,716,707],{"class":82},[61,718,634],{"class":78},[61,720,626],{"class":82},[61,722,724,726,728],{"class":63,"line":723},81,[61,725,707],{"class":82},[61,727,644],{"class":78},[61,729,626],{"class":82},[61,731,733,735,737],{"class":63,"line":732},82,[61,734,707],{"class":82},[61,736,654],{"class":78},[61,738,626],{"class":82},[61,740,742,744,746,748,750],{"class":63,"line":741},83,[61,743,599],{"class":82},[61,745,122],{"class":74},[61,747,666],{"class":125},[61,749,129],{"class":74},[61,751,132],{"class":82},[61,753,755],{"class":63,"line":754},84,[61,756,571],{"emptyLinePlaceholder":570},[61,758,760],{"class":63,"line":759},85,[61,761,762],{"class":67},"    //C++页面\n",[61,764,766,768,770,773,775],{"class":63,"line":765},86,[61,767,599],{"class":82},[61,769,122],{"class":74},[61,771,772],{"class":125}," \"C++下载视频页面如下： \"",[61,774,129],{"class":74},[61,776,132],{"class":82},[61,778,780],{"class":63,"line":779},87,[61,781,782],{"class":82},"    CPP cp;\n",[61,784,786,789,791],{"class":63,"line":785},88,[61,787,788],{"class":82},"    cp.",[61,790,623],{"class":78},[61,792,626],{"class":82},[61,794,796,798,800],{"class":63,"line":795},89,[61,797,788],{"class":82},[61,799,634],{"class":78},[61,801,626],{"class":82},[61,803,805,807,809],{"class":63,"line":804},90,[61,806,788],{"class":82},[61,808,644],{"class":78},[61,810,626],{"class":82},[61,812,814,816,818],{"class":63,"line":813},91,[61,815,788],{"class":82},[61,817,654],{"class":78},[61,819,626],{"class":82},[61,821,823],{"class":63,"line":822},92,[61,824,571],{"emptyLinePlaceholder":570},[61,826,828],{"class":63,"line":827},93,[61,829,830],{"class":82},"}\n",[61,832,834],{"class":63,"line":833},94,[61,835,571],{"emptyLinePlaceholder":570},[61,837,839,842,845],{"class":63,"line":838},95,[61,840,841],{"class":74},"int",[61,843,844],{"class":78}," main",[61,846,847],{"class":82},"() {\n",[61,849,851],{"class":63,"line":850},96,[61,852,571],{"emptyLinePlaceholder":570},[61,854,856,859],{"class":63,"line":855},97,[61,857,858],{"class":78},"    test01",[61,860,626],{"class":82},[61,862,864],{"class":63,"line":863},98,[61,865,571],{"emptyLinePlaceholder":570},[61,867,869],{"class":63,"line":868},99,[61,870,571],{"emptyLinePlaceholder":570},[61,872,874,877,881],{"class":63,"line":873},100,[61,875,876],{"class":74},"    return",[61,878,880],{"class":879},"sj4cs"," 0",[61,882,883],{"class":82},";\n",[61,885,887],{"class":63,"line":886},101,[61,888,830],{"class":82},[13,890,891,894],{},[16,892,893],{},"运行/观察结果："," 运行后会分别打印 Java、Python、C++ 三个下载页面的公共头部、公共底部、公共分类和各自内容。",[13,896,897],{},[16,898,899],{},"继承实现：",[51,901,903],{"className":53,"code":902,"language":55,"meta":56,"style":56},"//公共页面\nclass BasePage\n{\npublic:\n    void header()\n    {\n        cout \u003C\u003C \"首页、公开课、登录、注册...（公共头部）\" \u003C\u003C endl;\n    }\n\n    void footer()\n    {\n        cout \u003C\u003C \"帮助中心、交流合作、站内地图...(公共底部)\" \u003C\u003C endl;\n    }\n    void left()\n    {\n        cout \u003C\u003C \"Java,Python,C++...(公共分类列表)\" \u003C\u003C endl;\n    }\n\n};\n\n//Java页面\nclass Java : public BasePage\n{\npublic:\n    void content()\n    {\n        cout \u003C\u003C \"JAVA学科视频\" \u003C\u003C endl;\n    }\n};\n//Python页面\nclass Python : public BasePage\n{\npublic:\n    void content()\n    {\n        cout \u003C\u003C \"Python学科视频\" \u003C\u003C endl;\n    }\n};\n//C++页面\nclass CPP : public BasePage\n{\npublic:\n    void content()\n    {\n        cout \u003C\u003C \"C++学科视频\" \u003C\u003C endl;\n    }\n};\n\nvoid test01()\n{\n    //Java页面\n    cout \u003C\u003C \"Java下载视频页面如下： \" \u003C\u003C endl;\n    Java ja;\n    ja.header();\n    ja.footer();\n    ja.left();\n    ja.content();\n    cout \u003C\u003C \"--------------------\" \u003C\u003C endl;\n\n    //Python页面\n    cout \u003C\u003C \"Python下载视频页面如下： \" \u003C\u003C endl;\n    Python py;\n    py.header();\n    py.footer();\n    py.left();\n    py.content();\n    cout \u003C\u003C \"--------------------\" \u003C\u003C endl;\n\n    //C++页面\n    cout \u003C\u003C \"C++下载视频页面如下： \" \u003C\u003C endl;\n    CPP cp;\n    cp.header();\n    cp.footer();\n    cp.left();\n    cp.content();\n\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[58,904,905,910,917,921,925,933,937,949,953,957,965,969,981,985,993,997,1009,1013,1017,1021,1025,1029,1043,1047,1051,1059,1063,1075,1079,1083,1087,1100,1104,1108,1116,1120,1132,1136,1140,1144,1156,1160,1164,1172,1176,1188,1192,1196,1200,1208,1212,1216,1228,1232,1240,1248,1256,1264,1276,1280,1284,1296,1300,1308,1316,1324,1332,1344,1348,1352,1364,1368,1376,1384,1392,1400,1404,1408,1412,1420,1424,1430,1434,1438,1446],{"__ignoreMap":56},[61,906,907],{"class":63,"line":64},[61,908,909],{"class":67},"//公共页面\n",[61,911,912,914],{"class":63,"line":71},[61,913,75],{"class":74},[61,915,916],{"class":78}," BasePage\n",[61,918,919],{"class":63,"line":86},[61,920,89],{"class":82},[61,922,923],{"class":63,"line":92},[61,924,95],{"class":74},[61,926,927,929,931],{"class":63,"line":98},[61,928,101],{"class":74},[61,930,104],{"class":78},[61,932,107],{"class":82},[61,934,935],{"class":63,"line":110},[61,936,113],{"class":82},[61,938,939,941,943,945,947],{"class":63,"line":116},[61,940,119],{"class":82},[61,942,122],{"class":74},[61,944,126],{"class":125},[61,946,129],{"class":74},[61,948,132],{"class":82},[61,950,951],{"class":63,"line":135},[61,952,138],{"class":82},[61,954,955],{"class":63,"line":141},[61,956,571],{"emptyLinePlaceholder":570},[61,958,959,961,963],{"class":63,"line":151},[61,960,101],{"class":74},[61,962,146],{"class":78},[61,964,107],{"class":82},[61,966,967],{"class":63,"line":156},[61,968,113],{"class":82},[61,970,971,973,975,977,979],{"class":63,"line":170},[61,972,119],{"class":82},[61,974,122],{"class":74},[61,976,163],{"class":125},[61,978,129],{"class":74},[61,980,132],{"class":82},[61,982,983],{"class":63,"line":175},[61,984,138],{"class":82},[61,986,987,989,991],{"class":63,"line":185},[61,988,101],{"class":74},[61,990,180],{"class":78},[61,992,107],{"class":82},[61,994,995],{"class":63,"line":190},[61,996,113],{"class":82},[61,998,999,1001,1003,1005,1007],{"class":63,"line":204},[61,1000,119],{"class":82},[61,1002,122],{"class":74},[61,1004,197],{"class":125},[61,1006,129],{"class":74},[61,1008,132],{"class":82},[61,1010,1011],{"class":63,"line":209},[61,1012,138],{"class":82},[61,1014,1015],{"class":63,"line":219},[61,1016,571],{"emptyLinePlaceholder":570},[61,1018,1019],{"class":63,"line":224},[61,1020,246],{"class":82},[61,1022,1023],{"class":63,"line":238},[61,1024,571],{"emptyLinePlaceholder":570},[61,1026,1027],{"class":63,"line":243},[61,1028,68],{"class":67},[61,1030,1031,1033,1035,1038,1041],{"class":63,"line":249},[61,1032,75],{"class":74},[61,1034,79],{"class":78},[61,1036,1037],{"class":82}," : ",[61,1039,1040],{"class":74},"public",[61,1042,916],{"class":78},[61,1044,1045],{"class":63,"line":255},[61,1046,89],{"class":82},[61,1048,1049],{"class":63,"line":263},[61,1050,95],{"class":74},[61,1052,1053,1055,1057],{"class":63,"line":268},[61,1054,101],{"class":74},[61,1056,214],{"class":78},[61,1058,107],{"class":82},[61,1060,1061],{"class":63,"line":273},[61,1062,113],{"class":82},[61,1064,1065,1067,1069,1071,1073],{"class":63,"line":282},[61,1066,119],{"class":82},[61,1068,122],{"class":74},[61,1070,231],{"class":125},[61,1072,129],{"class":74},[61,1074,132],{"class":82},[61,1076,1077],{"class":63,"line":287},[61,1078,138],{"class":82},[61,1080,1081],{"class":63,"line":300},[61,1082,246],{"class":82},[61,1084,1085],{"class":63,"line":305},[61,1086,252],{"class":67},[61,1088,1089,1091,1094,1096,1098],{"class":63,"line":314},[61,1090,75],{"class":74},[61,1092,1093],{"class":78}," Python",[61,1095,1037],{"class":82},[61,1097,1040],{"class":74},[61,1099,916],{"class":78},[61,1101,1102],{"class":63,"line":319},[61,1103,89],{"class":82},[61,1105,1106],{"class":63,"line":332},[61,1107,95],{"class":74},[61,1109,1110,1112,1114],{"class":63,"line":337},[61,1111,101],{"class":74},[61,1113,214],{"class":78},[61,1115,107],{"class":82},[61,1117,1118],{"class":63,"line":346},[61,1119,113],{"class":82},[61,1121,1122,1124,1126,1128,1130],{"class":63,"line":351},[61,1123,119],{"class":82},[61,1125,122],{"class":74},[61,1127,390],{"class":125},[61,1129,129],{"class":74},[61,1131,132],{"class":82},[61,1133,1134],{"class":63,"line":364},[61,1135,138],{"class":82},[61,1137,1138],{"class":63,"line":369},[61,1139,246],{"class":82},[61,1141,1142],{"class":63,"line":378},[61,1143,410],{"class":67},[61,1145,1146,1148,1150,1152,1154],{"class":63,"line":383},[61,1147,75],{"class":74},[61,1149,418],{"class":78},[61,1151,1037],{"class":82},[61,1153,1040],{"class":74},[61,1155,916],{"class":78},[61,1157,1158],{"class":63,"line":397},[61,1159,89],{"class":82},[61,1161,1162],{"class":63,"line":402},[61,1163,95],{"class":74},[61,1165,1166,1168,1170],{"class":63,"line":407},[61,1167,101],{"class":74},[61,1169,214],{"class":78},[61,1171,107],{"class":82},[61,1173,1174],{"class":63,"line":413},[61,1175,113],{"class":82},[61,1177,1178,1180,1182,1184,1186],{"class":63,"line":423},[61,1179,119],{"class":82},[61,1181,122],{"class":74},[61,1183,550],{"class":125},[61,1185,129],{"class":74},[61,1187,132],{"class":82},[61,1189,1190],{"class":63,"line":428},[61,1191,138],{"class":82},[61,1193,1194],{"class":63,"line":433},[61,1195,246],{"class":82},[61,1197,1198],{"class":63,"line":442},[61,1199,571],{"emptyLinePlaceholder":570},[61,1201,1202,1204,1206],{"class":63,"line":447},[61,1203,577],{"class":74},[61,1205,580],{"class":78},[61,1207,107],{"class":82},[61,1209,1210],{"class":63,"line":460},[61,1211,89],{"class":82},[61,1213,1214],{"class":63,"line":465},[61,1215,593],{"class":67},[61,1217,1218,1220,1222,1224,1226],{"class":63,"line":474},[61,1219,599],{"class":82},[61,1221,122],{"class":74},[61,1223,604],{"class":125},[61,1225,129],{"class":74},[61,1227,132],{"class":82},[61,1229,1230],{"class":63,"line":479},[61,1231,614],{"class":82},[61,1233,1234,1236,1238],{"class":63,"line":492},[61,1235,620],{"class":82},[61,1237,623],{"class":78},[61,1239,626],{"class":82},[61,1241,1242,1244,1246],{"class":63,"line":497},[61,1243,620],{"class":82},[61,1245,634],{"class":78},[61,1247,626],{"class":82},[61,1249,1250,1252,1254],{"class":63,"line":506},[61,1251,620],{"class":82},[61,1253,644],{"class":78},[61,1255,626],{"class":82},[61,1257,1258,1260,1262],{"class":63,"line":511},[61,1259,620],{"class":82},[61,1261,654],{"class":78},[61,1263,626],{"class":82},[61,1265,1266,1268,1270,1272,1274],{"class":63,"line":524},[61,1267,599],{"class":82},[61,1269,122],{"class":74},[61,1271,666],{"class":125},[61,1273,129],{"class":74},[61,1275,132],{"class":82},[61,1277,1278],{"class":63,"line":529},[61,1279,571],{"emptyLinePlaceholder":570},[61,1281,1282],{"class":63,"line":538},[61,1283,681],{"class":67},[61,1285,1286,1288,1290,1292,1294],{"class":63,"line":543},[61,1287,599],{"class":82},[61,1289,122],{"class":74},[61,1291,691],{"class":125},[61,1293,129],{"class":74},[61,1295,132],{"class":82},[61,1297,1298],{"class":63,"line":557},[61,1299,701],{"class":82},[61,1301,1302,1304,1306],{"class":63,"line":562},[61,1303,707],{"class":82},[61,1305,623],{"class":78},[61,1307,626],{"class":82},[61,1309,1310,1312,1314],{"class":63,"line":567},[61,1311,707],{"class":82},[61,1313,634],{"class":78},[61,1315,626],{"class":82},[61,1317,1318,1320,1322],{"class":63,"line":574},[61,1319,707],{"class":82},[61,1321,644],{"class":78},[61,1323,626],{"class":82},[61,1325,1326,1328,1330],{"class":63,"line":585},[61,1327,707],{"class":82},[61,1329,654],{"class":78},[61,1331,626],{"class":82},[61,1333,1334,1336,1338,1340,1342],{"class":63,"line":590},[61,1335,599],{"class":82},[61,1337,122],{"class":74},[61,1339,666],{"class":125},[61,1341,129],{"class":74},[61,1343,132],{"class":82},[61,1345,1346],{"class":63,"line":596},[61,1347,571],{"emptyLinePlaceholder":570},[61,1349,1350],{"class":63,"line":611},[61,1351,762],{"class":67},[61,1353,1354,1356,1358,1360,1362],{"class":63,"line":617},[61,1355,599],{"class":82},[61,1357,122],{"class":74},[61,1359,772],{"class":125},[61,1361,129],{"class":74},[61,1363,132],{"class":82},[61,1365,1366],{"class":63,"line":629},[61,1367,782],{"class":82},[61,1369,1370,1372,1374],{"class":63,"line":639},[61,1371,788],{"class":82},[61,1373,623],{"class":78},[61,1375,626],{"class":82},[61,1377,1378,1380,1382],{"class":63,"line":649},[61,1379,788],{"class":82},[61,1381,634],{"class":78},[61,1383,626],{"class":82},[61,1385,1386,1388,1390],{"class":63,"line":659},[61,1387,788],{"class":82},[61,1389,644],{"class":78},[61,1391,626],{"class":82},[61,1393,1394,1396,1398],{"class":63,"line":673},[61,1395,788],{"class":82},[61,1397,654],{"class":78},[61,1399,626],{"class":82},[61,1401,1402],{"class":63,"line":678},[61,1403,571],{"emptyLinePlaceholder":570},[61,1405,1406],{"class":63,"line":684},[61,1407,830],{"class":82},[61,1409,1410],{"class":63,"line":698},[61,1411,571],{"emptyLinePlaceholder":570},[61,1413,1414,1416,1418],{"class":63,"line":704},[61,1415,841],{"class":74},[61,1417,844],{"class":78},[61,1419,847],{"class":82},[61,1421,1422],{"class":63,"line":714},[61,1423,571],{"emptyLinePlaceholder":570},[61,1425,1426,1428],{"class":63,"line":723},[61,1427,858],{"class":78},[61,1429,626],{"class":82},[61,1431,1432],{"class":63,"line":732},[61,1433,571],{"emptyLinePlaceholder":570},[61,1435,1436],{"class":63,"line":741},[61,1437,571],{"emptyLinePlaceholder":570},[61,1439,1440,1442,1444],{"class":63,"line":754},[61,1441,876],{"class":74},[61,1443,880],{"class":879},[61,1445,883],{"class":82},[61,1447,1448],{"class":63,"line":759},[61,1449,830],{"class":82},[13,1451,1452,1454],{},[16,1453,893],{}," 运行后输出与上一版页面示例相同，但公共部分改由基类复用，重点观察继承带来的重复代码减少。",[13,1456,1457],{},[16,1458,1459],{},"总结：",[13,1461,1462],{},"继承的好处：==可以减少重复的代码==",[13,1464,1465],{},"class A : public B;",[13,1467,1468],{},"A 类称为子类 或 派生类",[13,1470,1471],{},"B 类称为父类 或 基类",[13,1473,1474,1477],{},[16,1475,1476],{},"派生类中的成员，包含两大部分","：",[13,1479,1480],{},"一类是从基类继承过来的，一类是自己增加的成员。",[13,1482,1483],{},"从基类继承过过来的表现其共性，而新增的成员体现了其个性。",[36,1485,1486],{"id":1486},"继承方式",[13,1488,1489,1490],{},"继承的语法：",[58,1491,1492],{},"class 子类 : 继承方式  父类",[13,1494,1495],{},[16,1496,1497],{},"继承方式一共有三种：",[1499,1500,1501,1505,1508],"ul",{},[1502,1503,1504],"li",{},"公共继承",[1502,1506,1507],{},"保护继承",[1502,1509,1510],{},"私有继承",[13,1512,1513],{},[25,1514],{"alt":25,"src":1515},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/10/05/stage3-clip-image002-3854cb3c79.webp",[13,1517,1518],{},[16,1519,1520],{},"示例：",[51,1522,1524],{"className":53,"code":1523,"language":55,"meta":56,"style":56},"class Base1\n{\npublic: \n    int m_A;\nprotected:\n    int m_B;\nprivate:\n    int m_C;\n};\n\n//公共继承\nclass Son1 :public Base1\n{\npublic:\n    void func()\n    {\n        m_A; //可访问 public权限\n        m_B; //可访问 protected权限\n        //m_C; //不可访问\n    }\n};\n\nvoid myClass()\n{\n    Son1 s1;\n    s1.m_A; //其他类只能访问到公共权限\n}\n\n//保护继承\nclass Base2\n{\npublic:\n    int m_A;\nprotected:\n    int m_B;\nprivate:\n    int m_C;\n};\nclass Son2:protected Base2\n{\npublic:\n    void func()\n    {\n        m_A; //可访问 protected权限\n        m_B; //可访问 protected权限\n        //m_C; //不可访问\n    }\n};\nvoid myClass2()\n{\n    Son2 s;\n    //s.m_A; //不可访问\n}\n\n//私有继承\nclass Base3\n{\npublic:\n    int m_A;\nprotected:\n    int m_B;\nprivate:\n    int m_C;\n};\nclass Son3:private Base3\n{\npublic:\n    void func()\n    {\n        m_A; //可访问 private权限\n        m_B; //可访问 private权限\n        //m_C; //不可访问\n    }\n};\nclass GrandSon3 :public Son3\n{\npublic:\n    void func()\n    {\n        //Son3是私有继承，所以继承Son3的属性在GrandSon3中都无法访问到\n        //m_A;\n        //m_B;\n        //m_C;\n    }\n};\n",[58,1525,1526,1533,1537,1544,1552,1557,1564,1569,1576,1580,1584,1589,1603,1607,1611,1620,1624,1632,1640,1648,1652,1656,1660,1669,1673,1678,1686,1690,1694,1699,1706,1710,1714,1720,1724,1730,1734,1740,1744,1759,1763,1767,1775,1779,1785,1791,1797,1801,1805,1814,1818,1823,1830,1834,1838,1843,1850,1854,1858,1864,1868,1874,1878,1884,1888,1902,1906,1910,1918,1922,1929,1935,1941,1945,1949,1963,1967,1971,1979,1983,1988,1993,1998,2003,2007],{"__ignoreMap":56},[61,1527,1528,1530],{"class":63,"line":64},[61,1529,75],{"class":74},[61,1531,1532],{"class":78}," Base1\n",[61,1534,1535],{"class":63,"line":71},[61,1536,89],{"class":82},[61,1538,1539,1542],{"class":63,"line":86},[61,1540,1541],{"class":74},"public:",[61,1543,83],{"class":82},[61,1545,1546,1549],{"class":63,"line":92},[61,1547,1548],{"class":74},"    int",[61,1550,1551],{"class":82}," m_A;\n",[61,1553,1554],{"class":63,"line":98},[61,1555,1556],{"class":74},"protected:\n",[61,1558,1559,1561],{"class":63,"line":110},[61,1560,1548],{"class":74},[61,1562,1563],{"class":82}," m_B;\n",[61,1565,1566],{"class":63,"line":116},[61,1567,1568],{"class":74},"private:\n",[61,1570,1571,1573],{"class":63,"line":135},[61,1572,1548],{"class":74},[61,1574,1575],{"class":82}," m_C;\n",[61,1577,1578],{"class":63,"line":141},[61,1579,246],{"class":82},[61,1581,1582],{"class":63,"line":151},[61,1583,571],{"emptyLinePlaceholder":570},[61,1585,1586],{"class":63,"line":156},[61,1587,1588],{"class":67},"//公共继承\n",[61,1590,1591,1593,1596,1599,1601],{"class":63,"line":170},[61,1592,75],{"class":74},[61,1594,1595],{"class":78}," Son1",[61,1597,1598],{"class":82}," :",[61,1600,1040],{"class":74},[61,1602,1532],{"class":78},[61,1604,1605],{"class":63,"line":175},[61,1606,89],{"class":82},[61,1608,1609],{"class":63,"line":185},[61,1610,95],{"class":74},[61,1612,1613,1615,1618],{"class":63,"line":190},[61,1614,101],{"class":74},[61,1616,1617],{"class":78}," func",[61,1619,107],{"class":82},[61,1621,1622],{"class":63,"line":204},[61,1623,113],{"class":82},[61,1625,1626,1629],{"class":63,"line":209},[61,1627,1628],{"class":82},"        m_A;",[61,1630,1631],{"class":67}," //可访问 public权限\n",[61,1633,1634,1637],{"class":63,"line":219},[61,1635,1636],{"class":82},"        m_B;",[61,1638,1639],{"class":67}," //可访问 protected权限\n",[61,1641,1642,1645],{"class":63,"line":224},[61,1643,1644],{"class":67},"        //m_C;",[61,1646,1647],{"class":67}," //不可访问\n",[61,1649,1650],{"class":63,"line":238},[61,1651,138],{"class":82},[61,1653,1654],{"class":63,"line":243},[61,1655,246],{"class":82},[61,1657,1658],{"class":63,"line":249},[61,1659,571],{"emptyLinePlaceholder":570},[61,1661,1662,1664,1667],{"class":63,"line":255},[61,1663,577],{"class":74},[61,1665,1666],{"class":78}," myClass",[61,1668,107],{"class":82},[61,1670,1671],{"class":63,"line":263},[61,1672,89],{"class":82},[61,1674,1675],{"class":63,"line":268},[61,1676,1677],{"class":82},"    Son1 s1;\n",[61,1679,1680,1683],{"class":63,"line":273},[61,1681,1682],{"class":82},"    s1.m_A;",[61,1684,1685],{"class":67}," //其他类只能访问到公共权限\n",[61,1687,1688],{"class":63,"line":282},[61,1689,830],{"class":82},[61,1691,1692],{"class":63,"line":287},[61,1693,571],{"emptyLinePlaceholder":570},[61,1695,1696],{"class":63,"line":300},[61,1697,1698],{"class":67},"//保护继承\n",[61,1700,1701,1703],{"class":63,"line":305},[61,1702,75],{"class":74},[61,1704,1705],{"class":78}," Base2\n",[61,1707,1708],{"class":63,"line":314},[61,1709,89],{"class":82},[61,1711,1712],{"class":63,"line":319},[61,1713,95],{"class":74},[61,1715,1716,1718],{"class":63,"line":332},[61,1717,1548],{"class":74},[61,1719,1551],{"class":82},[61,1721,1722],{"class":63,"line":337},[61,1723,1556],{"class":74},[61,1725,1726,1728],{"class":63,"line":346},[61,1727,1548],{"class":74},[61,1729,1563],{"class":82},[61,1731,1732],{"class":63,"line":351},[61,1733,1568],{"class":74},[61,1735,1736,1738],{"class":63,"line":364},[61,1737,1548],{"class":74},[61,1739,1575],{"class":82},[61,1741,1742],{"class":63,"line":369},[61,1743,246],{"class":82},[61,1745,1746,1748,1751,1754,1757],{"class":63,"line":378},[61,1747,75],{"class":74},[61,1749,1750],{"class":78}," Son2",[61,1752,1753],{"class":82},":",[61,1755,1756],{"class":74},"protected",[61,1758,1705],{"class":78},[61,1760,1761],{"class":63,"line":383},[61,1762,89],{"class":82},[61,1764,1765],{"class":63,"line":397},[61,1766,95],{"class":74},[61,1768,1769,1771,1773],{"class":63,"line":402},[61,1770,101],{"class":74},[61,1772,1617],{"class":78},[61,1774,107],{"class":82},[61,1776,1777],{"class":63,"line":407},[61,1778,113],{"class":82},[61,1780,1781,1783],{"class":63,"line":413},[61,1782,1628],{"class":82},[61,1784,1639],{"class":67},[61,1786,1787,1789],{"class":63,"line":423},[61,1788,1636],{"class":82},[61,1790,1639],{"class":67},[61,1792,1793,1795],{"class":63,"line":428},[61,1794,1644],{"class":67},[61,1796,1647],{"class":67},[61,1798,1799],{"class":63,"line":433},[61,1800,138],{"class":82},[61,1802,1803],{"class":63,"line":442},[61,1804,246],{"class":82},[61,1806,1807,1809,1812],{"class":63,"line":447},[61,1808,577],{"class":74},[61,1810,1811],{"class":78}," myClass2",[61,1813,107],{"class":82},[61,1815,1816],{"class":63,"line":460},[61,1817,89],{"class":82},[61,1819,1820],{"class":63,"line":465},[61,1821,1822],{"class":82},"    Son2 s;\n",[61,1824,1825,1828],{"class":63,"line":474},[61,1826,1827],{"class":67},"    //s.m_A;",[61,1829,1647],{"class":67},[61,1831,1832],{"class":63,"line":479},[61,1833,830],{"class":82},[61,1835,1836],{"class":63,"line":492},[61,1837,571],{"emptyLinePlaceholder":570},[61,1839,1840],{"class":63,"line":497},[61,1841,1842],{"class":67},"//私有继承\n",[61,1844,1845,1847],{"class":63,"line":506},[61,1846,75],{"class":74},[61,1848,1849],{"class":78}," Base3\n",[61,1851,1852],{"class":63,"line":511},[61,1853,89],{"class":82},[61,1855,1856],{"class":63,"line":524},[61,1857,95],{"class":74},[61,1859,1860,1862],{"class":63,"line":529},[61,1861,1548],{"class":74},[61,1863,1551],{"class":82},[61,1865,1866],{"class":63,"line":538},[61,1867,1556],{"class":74},[61,1869,1870,1872],{"class":63,"line":543},[61,1871,1548],{"class":74},[61,1873,1563],{"class":82},[61,1875,1876],{"class":63,"line":557},[61,1877,1568],{"class":74},[61,1879,1880,1882],{"class":63,"line":562},[61,1881,1548],{"class":74},[61,1883,1575],{"class":82},[61,1885,1886],{"class":63,"line":567},[61,1887,246],{"class":82},[61,1889,1890,1892,1895,1897,1900],{"class":63,"line":574},[61,1891,75],{"class":74},[61,1893,1894],{"class":78}," Son3",[61,1896,1753],{"class":82},[61,1898,1899],{"class":74},"private",[61,1901,1849],{"class":78},[61,1903,1904],{"class":63,"line":585},[61,1905,89],{"class":82},[61,1907,1908],{"class":63,"line":590},[61,1909,95],{"class":74},[61,1911,1912,1914,1916],{"class":63,"line":596},[61,1913,101],{"class":74},[61,1915,1617],{"class":78},[61,1917,107],{"class":82},[61,1919,1920],{"class":63,"line":611},[61,1921,113],{"class":82},[61,1923,1924,1926],{"class":63,"line":617},[61,1925,1628],{"class":82},[61,1927,1928],{"class":67}," //可访问 private权限\n",[61,1930,1931,1933],{"class":63,"line":629},[61,1932,1636],{"class":82},[61,1934,1928],{"class":67},[61,1936,1937,1939],{"class":63,"line":639},[61,1938,1644],{"class":67},[61,1940,1647],{"class":67},[61,1942,1943],{"class":63,"line":649},[61,1944,138],{"class":82},[61,1946,1947],{"class":63,"line":659},[61,1948,246],{"class":82},[61,1950,1951,1953,1956,1958,1960],{"class":63,"line":673},[61,1952,75],{"class":74},[61,1954,1955],{"class":78}," GrandSon3",[61,1957,1598],{"class":82},[61,1959,1040],{"class":74},[61,1961,1962],{"class":78}," Son3\n",[61,1964,1965],{"class":63,"line":678},[61,1966,89],{"class":82},[61,1968,1969],{"class":63,"line":684},[61,1970,95],{"class":74},[61,1972,1973,1975,1977],{"class":63,"line":698},[61,1974,101],{"class":74},[61,1976,1617],{"class":78},[61,1978,107],{"class":82},[61,1980,1981],{"class":63,"line":704},[61,1982,113],{"class":82},[61,1984,1985],{"class":63,"line":714},[61,1986,1987],{"class":67},"        //Son3是私有继承，所以继承Son3的属性在GrandSon3中都无法访问到\n",[61,1989,1990],{"class":63,"line":723},[61,1991,1992],{"class":67},"        //m_A;\n",[61,1994,1995],{"class":63,"line":732},[61,1996,1997],{"class":67},"        //m_B;\n",[61,1999,2000],{"class":63,"line":741},[61,2001,2002],{"class":67},"        //m_C;\n",[61,2004,2005],{"class":63,"line":754},[61,2006,138],{"class":82},[61,2008,2009],{"class":63,"line":759},[61,2010,246],{"class":82},[13,2012,2013,2015],{},[16,2014,893],{}," 这段偏语法定义，通常需要配合调用代码一起编译，重点看定义方式和使用位置。",[36,2017,2018],{"id":2018},"继承中的对象模型",[13,2020,2021],{},"**问题：**从父类继承过来的成员，哪些属于子类对象中？",[13,2023,2024],{},[16,2025,1520],{},[51,2027,2029],{"className":53,"code":2028,"language":55,"meta":56,"style":56},"class Base\n{\npublic:\n    int m_A;\nprotected:\n    int m_B;\nprivate:\n    int m_C; //私有成员只是被隐藏了，但是还是会继承下去\n};\n\n//公共继承\nclass Son :public Base\n{\npublic:\n    int m_D;\n};\n\nvoid test01()\n{\n    cout \u003C\u003C \"sizeof Son = \" \u003C\u003C sizeof(Son) \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[58,2030,2031,2038,2042,2046,2052,2056,2062,2066,2076,2080,2084,2088,2101,2105,2109,2116,2120,2124,2132,2136,2157,2161,2165,2173,2177,2183,2187,2191,2199],{"__ignoreMap":56},[61,2032,2033,2035],{"class":63,"line":64},[61,2034,75],{"class":74},[61,2036,2037],{"class":78}," Base\n",[61,2039,2040],{"class":63,"line":71},[61,2041,89],{"class":82},[61,2043,2044],{"class":63,"line":86},[61,2045,95],{"class":74},[61,2047,2048,2050],{"class":63,"line":92},[61,2049,1548],{"class":74},[61,2051,1551],{"class":82},[61,2053,2054],{"class":63,"line":98},[61,2055,1556],{"class":74},[61,2057,2058,2060],{"class":63,"line":110},[61,2059,1548],{"class":74},[61,2061,1563],{"class":82},[61,2063,2064],{"class":63,"line":116},[61,2065,1568],{"class":74},[61,2067,2068,2070,2073],{"class":63,"line":135},[61,2069,1548],{"class":74},[61,2071,2072],{"class":82}," m_C;",[61,2074,2075],{"class":67}," //私有成员只是被隐藏了，但是还是会继承下去\n",[61,2077,2078],{"class":63,"line":141},[61,2079,246],{"class":82},[61,2081,2082],{"class":63,"line":151},[61,2083,571],{"emptyLinePlaceholder":570},[61,2085,2086],{"class":63,"line":156},[61,2087,1588],{"class":67},[61,2089,2090,2092,2095,2097,2099],{"class":63,"line":170},[61,2091,75],{"class":74},[61,2093,2094],{"class":78}," Son",[61,2096,1598],{"class":82},[61,2098,1040],{"class":74},[61,2100,2037],{"class":78},[61,2102,2103],{"class":63,"line":175},[61,2104,89],{"class":82},[61,2106,2107],{"class":63,"line":185},[61,2108,95],{"class":74},[61,2110,2111,2113],{"class":63,"line":190},[61,2112,1548],{"class":74},[61,2114,2115],{"class":82}," m_D;\n",[61,2117,2118],{"class":63,"line":204},[61,2119,246],{"class":82},[61,2121,2122],{"class":63,"line":209},[61,2123,571],{"emptyLinePlaceholder":570},[61,2125,2126,2128,2130],{"class":63,"line":219},[61,2127,577],{"class":74},[61,2129,580],{"class":78},[61,2131,107],{"class":82},[61,2133,2134],{"class":63,"line":224},[61,2135,89],{"class":82},[61,2137,2138,2140,2142,2145,2147,2150,2153,2155],{"class":63,"line":238},[61,2139,599],{"class":82},[61,2141,122],{"class":74},[61,2143,2144],{"class":125}," \"sizeof Son = \"",[61,2146,129],{"class":74},[61,2148,2149],{"class":74}," sizeof",[61,2151,2152],{"class":82},"(Son) ",[61,2154,122],{"class":74},[61,2156,132],{"class":82},[61,2158,2159],{"class":63,"line":243},[61,2160,830],{"class":82},[61,2162,2163],{"class":63,"line":249},[61,2164,571],{"emptyLinePlaceholder":570},[61,2166,2167,2169,2171],{"class":63,"line":255},[61,2168,841],{"class":74},[61,2170,844],{"class":78},[61,2172,847],{"class":82},[61,2174,2175],{"class":63,"line":263},[61,2176,571],{"emptyLinePlaceholder":570},[61,2178,2179,2181],{"class":63,"line":268},[61,2180,858],{"class":78},[61,2182,626],{"class":82},[61,2184,2185],{"class":63,"line":273},[61,2186,571],{"emptyLinePlaceholder":570},[61,2188,2189],{"class":63,"line":282},[61,2190,571],{"emptyLinePlaceholder":570},[61,2192,2193,2195,2197],{"class":63,"line":287},[61,2194,876],{"class":74},[61,2196,880],{"class":879},[61,2198,883],{"class":82},[61,2200,2201],{"class":63,"line":300},[61,2202,830],{"class":82},[13,2204,2205,2207],{},[16,2206,893],{}," 运行后会按输出语句打印对应内容，变量值可结合初始化、赋值和函数调用顺序推导。",[13,2209,2210],{},"利用工具查看：",[13,2212,2213],{},[25,2214],{"alt":2215,"src":2216},"1545881904150","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/10/05/stage3-1545881904150-4e4c03aedc.webp",[13,2218,2219],{},"打开工具窗口后，定位到当前CPP文件的盘符",[13,2221,2222],{},"然后输入： cl /d1 reportSingleClassLayout查看的类名   所属文件名",[13,2224,2225],{},"效果如下图：",[13,2227,2228],{},[25,2229],{"alt":2230,"src":2231},"1545882158050","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/10/05/stage3-1545882158050-d4f7cbf46b.webp",[2233,2234,2235],"blockquote",{},[13,2236,2237],{},"结论： 父类中私有成员也是被子类继承下去了，只是由编译器给隐藏后访问不到",[36,2239,2240],{"id":2240},"继承中构造和析构顺序",[13,2242,2243],{},"子类继承父类后，当创建子类对象，也会调用父类的构造函数",[13,2245,2246],{},"问题：父类和子类的构造和析构顺序是谁先谁后？",[13,2248,2249],{},[16,2250,1520],{},[51,2252,2254],{"className":53,"code":2253,"language":55,"meta":56,"style":56},"class Base \n{\npublic:\n    Base()\n    {\n        cout \u003C\u003C \"Base构造函数!\" \u003C\u003C endl;\n    }\n    ~Base()\n    {\n        cout \u003C\u003C \"Base析构函数!\" \u003C\u003C endl;\n    }\n};\n\nclass Son : public Base\n{\npublic:\n    Son()\n    {\n        cout \u003C\u003C \"Son构造函数!\" \u003C\u003C endl;\n    }\n    ~Son()\n    {\n        cout \u003C\u003C \"Son析构函数!\" \u003C\u003C endl;\n    }\n\n};\n\nvoid test01()\n{\n    //继承中 先调用父类构造函数，再调用子类构造函数，析构顺序与构造相反\n    Son s;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[58,2255,2256,2265,2269,2273,2280,2284,2297,2301,2308,2312,2325,2329,2333,2337,2349,2353,2357,2364,2368,2381,2385,2392,2396,2409,2413,2417,2421,2425,2433,2437,2442,2447,2451,2455,2463,2467,2473,2477,2481,2489],{"__ignoreMap":56},[61,2257,2258,2260,2263],{"class":63,"line":64},[61,2259,75],{"class":74},[61,2261,2262],{"class":78}," Base",[61,2264,83],{"class":82},[61,2266,2267],{"class":63,"line":71},[61,2268,89],{"class":82},[61,2270,2271],{"class":63,"line":86},[61,2272,95],{"class":74},[61,2274,2275,2278],{"class":63,"line":92},[61,2276,2277],{"class":78},"    Base",[61,2279,107],{"class":82},[61,2281,2282],{"class":63,"line":98},[61,2283,113],{"class":82},[61,2285,2286,2288,2290,2293,2295],{"class":63,"line":110},[61,2287,119],{"class":82},[61,2289,122],{"class":74},[61,2291,2292],{"class":125}," \"Base构造函数!\"",[61,2294,129],{"class":74},[61,2296,132],{"class":82},[61,2298,2299],{"class":63,"line":116},[61,2300,138],{"class":82},[61,2302,2303,2306],{"class":63,"line":135},[61,2304,2305],{"class":78},"    ~Base",[61,2307,107],{"class":82},[61,2309,2310],{"class":63,"line":141},[61,2311,113],{"class":82},[61,2313,2314,2316,2318,2321,2323],{"class":63,"line":151},[61,2315,119],{"class":82},[61,2317,122],{"class":74},[61,2319,2320],{"class":125}," \"Base析构函数!\"",[61,2322,129],{"class":74},[61,2324,132],{"class":82},[61,2326,2327],{"class":63,"line":156},[61,2328,138],{"class":82},[61,2330,2331],{"class":63,"line":170},[61,2332,246],{"class":82},[61,2334,2335],{"class":63,"line":175},[61,2336,571],{"emptyLinePlaceholder":570},[61,2338,2339,2341,2343,2345,2347],{"class":63,"line":185},[61,2340,75],{"class":74},[61,2342,2094],{"class":78},[61,2344,1037],{"class":82},[61,2346,1040],{"class":74},[61,2348,2037],{"class":78},[61,2350,2351],{"class":63,"line":190},[61,2352,89],{"class":82},[61,2354,2355],{"class":63,"line":204},[61,2356,95],{"class":74},[61,2358,2359,2362],{"class":63,"line":209},[61,2360,2361],{"class":78},"    Son",[61,2363,107],{"class":82},[61,2365,2366],{"class":63,"line":219},[61,2367,113],{"class":82},[61,2369,2370,2372,2374,2377,2379],{"class":63,"line":224},[61,2371,119],{"class":82},[61,2373,122],{"class":74},[61,2375,2376],{"class":125}," \"Son构造函数!\"",[61,2378,129],{"class":74},[61,2380,132],{"class":82},[61,2382,2383],{"class":63,"line":238},[61,2384,138],{"class":82},[61,2386,2387,2390],{"class":63,"line":243},[61,2388,2389],{"class":78},"    ~Son",[61,2391,107],{"class":82},[61,2393,2394],{"class":63,"line":249},[61,2395,113],{"class":82},[61,2397,2398,2400,2402,2405,2407],{"class":63,"line":255},[61,2399,119],{"class":82},[61,2401,122],{"class":74},[61,2403,2404],{"class":125}," \"Son析构函数!\"",[61,2406,129],{"class":74},[61,2408,132],{"class":82},[61,2410,2411],{"class":63,"line":263},[61,2412,138],{"class":82},[61,2414,2415],{"class":63,"line":268},[61,2416,571],{"emptyLinePlaceholder":570},[61,2418,2419],{"class":63,"line":273},[61,2420,246],{"class":82},[61,2422,2423],{"class":63,"line":282},[61,2424,571],{"emptyLinePlaceholder":570},[61,2426,2427,2429,2431],{"class":63,"line":287},[61,2428,577],{"class":74},[61,2430,580],{"class":78},[61,2432,107],{"class":82},[61,2434,2435],{"class":63,"line":300},[61,2436,89],{"class":82},[61,2438,2439],{"class":63,"line":305},[61,2440,2441],{"class":67},"    //继承中 先调用父类构造函数，再调用子类构造函数，析构顺序与构造相反\n",[61,2443,2444],{"class":63,"line":314},[61,2445,2446],{"class":82},"    Son s;\n",[61,2448,2449],{"class":63,"line":319},[61,2450,830],{"class":82},[61,2452,2453],{"class":63,"line":332},[61,2454,571],{"emptyLinePlaceholder":570},[61,2456,2457,2459,2461],{"class":63,"line":337},[61,2458,841],{"class":74},[61,2460,844],{"class":78},[61,2462,847],{"class":82},[61,2464,2465],{"class":63,"line":346},[61,2466,571],{"emptyLinePlaceholder":570},[61,2468,2469,2471],{"class":63,"line":351},[61,2470,858],{"class":78},[61,2472,626],{"class":82},[61,2474,2475],{"class":63,"line":364},[61,2476,571],{"emptyLinePlaceholder":570},[61,2478,2479],{"class":63,"line":369},[61,2480,571],{"emptyLinePlaceholder":570},[61,2482,2483,2485,2487],{"class":63,"line":378},[61,2484,876],{"class":74},[61,2486,880],{"class":879},[61,2488,883],{"class":82},[61,2490,2491],{"class":63,"line":383},[61,2492,830],{"class":82},[13,2494,2495,2207],{},[16,2496,893],{},[2233,2498,2499],{},[13,2500,2501],{},"总结：继承中 先调用父类构造函数，再调用子类构造函数，析构顺序与构造相反",[36,2503,2504],{"id":2504},"继承同名成员处理方式",[13,2506,2507],{},"问题：当子类与父类出现同名的成员，如何通过子类对象，访问到子类或父类中同名的数据呢？",[1499,2509,2510,2513],{},[1502,2511,2512],{},"访问子类同名成员   直接访问即可",[1502,2514,2515],{},"访问父类同名成员   需要加作用域",[13,2517,2518],{},[16,2519,1520],{},[51,2521,2523],{"className":53,"code":2522,"language":55,"meta":56,"style":56},"class Base {\npublic:\n    Base()\n    {\n        m_A = 100;\n    }\n\n    void func()\n    {\n        cout \u003C\u003C \"Base - func()调用\" \u003C\u003C endl;\n    }\n\n    void func(int a)\n    {\n        cout \u003C\u003C \"Base - func(int a)调用\" \u003C\u003C endl;\n    }\n\npublic:\n    int m_A;\n};\n\nclass Son : public Base {\npublic:\n    Son()\n    {\n        m_A = 200;\n    }\n\n    //当子类与父类拥有同名的成员函数，子类会隐藏父类中所有版本的同名成员函数\n    //如果想访问父类中被隐藏的同名成员函数，需要加父类的作用域\n    void func()\n    {\n        cout \u003C\u003C \"Son - func()调用\" \u003C\u003C endl;\n    }\npublic:\n    int m_A;\n};\n\nvoid test01()\n{\n    Son s;\n\n    cout \u003C\u003C \"Son下的m_A = \" \u003C\u003C s.m_A \u003C\u003C endl;\n    cout \u003C\u003C \"Base下的m_A = \" \u003C\u003C s.Base::m_A \u003C\u003C endl;\n\n    s.func();\n    s.Base::func();\n    s.Base::func(10);\n\n}\nint main() {\n\n    test01();\n\n    return EXIT_SUCCESS;\n}\n",[58,2524,2525,2534,2538,2544,2548,2561,2565,2569,2577,2581,2594,2598,2602,2620,2624,2637,2641,2645,2649,2655,2659,2663,2677,2681,2687,2691,2702,2706,2710,2715,2720,2728,2732,2745,2749,2753,2759,2763,2767,2775,2779,2783,2787,2805,2823,2827,2837,2846,2860,2864,2868,2876,2880,2886,2890,2897],{"__ignoreMap":56},[61,2526,2527,2529,2531],{"class":63,"line":64},[61,2528,75],{"class":74},[61,2530,2262],{"class":78},[61,2532,2533],{"class":82}," {\n",[61,2535,2536],{"class":63,"line":71},[61,2537,95],{"class":74},[61,2539,2540,2542],{"class":63,"line":86},[61,2541,2277],{"class":78},[61,2543,107],{"class":82},[61,2545,2546],{"class":63,"line":92},[61,2547,113],{"class":82},[61,2549,2550,2553,2556,2559],{"class":63,"line":98},[61,2551,2552],{"class":82},"        m_A ",[61,2554,2555],{"class":74},"=",[61,2557,2558],{"class":879}," 100",[61,2560,883],{"class":82},[61,2562,2563],{"class":63,"line":110},[61,2564,138],{"class":82},[61,2566,2567],{"class":63,"line":116},[61,2568,571],{"emptyLinePlaceholder":570},[61,2570,2571,2573,2575],{"class":63,"line":135},[61,2572,101],{"class":74},[61,2574,1617],{"class":78},[61,2576,107],{"class":82},[61,2578,2579],{"class":63,"line":141},[61,2580,113],{"class":82},[61,2582,2583,2585,2587,2590,2592],{"class":63,"line":151},[61,2584,119],{"class":82},[61,2586,122],{"class":74},[61,2588,2589],{"class":125}," \"Base - func()调用\"",[61,2591,129],{"class":74},[61,2593,132],{"class":82},[61,2595,2596],{"class":63,"line":156},[61,2597,138],{"class":82},[61,2599,2600],{"class":63,"line":170},[61,2601,571],{"emptyLinePlaceholder":570},[61,2603,2604,2606,2608,2611,2613,2617],{"class":63,"line":175},[61,2605,101],{"class":74},[61,2607,1617],{"class":78},[61,2609,2610],{"class":82},"(",[61,2612,841],{"class":74},[61,2614,2616],{"class":2615},"s4XuR"," a",[61,2618,2619],{"class":82},")\n",[61,2621,2622],{"class":63,"line":185},[61,2623,113],{"class":82},[61,2625,2626,2628,2630,2633,2635],{"class":63,"line":190},[61,2627,119],{"class":82},[61,2629,122],{"class":74},[61,2631,2632],{"class":125}," \"Base - func(int a)调用\"",[61,2634,129],{"class":74},[61,2636,132],{"class":82},[61,2638,2639],{"class":63,"line":204},[61,2640,138],{"class":82},[61,2642,2643],{"class":63,"line":209},[61,2644,571],{"emptyLinePlaceholder":570},[61,2646,2647],{"class":63,"line":219},[61,2648,95],{"class":74},[61,2650,2651,2653],{"class":63,"line":224},[61,2652,1548],{"class":74},[61,2654,1551],{"class":82},[61,2656,2657],{"class":63,"line":238},[61,2658,246],{"class":82},[61,2660,2661],{"class":63,"line":243},[61,2662,571],{"emptyLinePlaceholder":570},[61,2664,2665,2667,2669,2671,2673,2675],{"class":63,"line":249},[61,2666,75],{"class":74},[61,2668,2094],{"class":78},[61,2670,1037],{"class":82},[61,2672,1040],{"class":74},[61,2674,2262],{"class":78},[61,2676,2533],{"class":82},[61,2678,2679],{"class":63,"line":255},[61,2680,95],{"class":74},[61,2682,2683,2685],{"class":63,"line":263},[61,2684,2361],{"class":78},[61,2686,107],{"class":82},[61,2688,2689],{"class":63,"line":268},[61,2690,113],{"class":82},[61,2692,2693,2695,2697,2700],{"class":63,"line":273},[61,2694,2552],{"class":82},[61,2696,2555],{"class":74},[61,2698,2699],{"class":879}," 200",[61,2701,883],{"class":82},[61,2703,2704],{"class":63,"line":282},[61,2705,138],{"class":82},[61,2707,2708],{"class":63,"line":287},[61,2709,571],{"emptyLinePlaceholder":570},[61,2711,2712],{"class":63,"line":300},[61,2713,2714],{"class":67},"    //当子类与父类拥有同名的成员函数，子类会隐藏父类中所有版本的同名成员函数\n",[61,2716,2717],{"class":63,"line":305},[61,2718,2719],{"class":67},"    //如果想访问父类中被隐藏的同名成员函数，需要加父类的作用域\n",[61,2721,2722,2724,2726],{"class":63,"line":314},[61,2723,101],{"class":74},[61,2725,1617],{"class":78},[61,2727,107],{"class":82},[61,2729,2730],{"class":63,"line":319},[61,2731,113],{"class":82},[61,2733,2734,2736,2738,2741,2743],{"class":63,"line":332},[61,2735,119],{"class":82},[61,2737,122],{"class":74},[61,2739,2740],{"class":125}," \"Son - func()调用\"",[61,2742,129],{"class":74},[61,2744,132],{"class":82},[61,2746,2747],{"class":63,"line":337},[61,2748,138],{"class":82},[61,2750,2751],{"class":63,"line":346},[61,2752,95],{"class":74},[61,2754,2755,2757],{"class":63,"line":351},[61,2756,1548],{"class":74},[61,2758,1551],{"class":82},[61,2760,2761],{"class":63,"line":364},[61,2762,246],{"class":82},[61,2764,2765],{"class":63,"line":369},[61,2766,571],{"emptyLinePlaceholder":570},[61,2768,2769,2771,2773],{"class":63,"line":378},[61,2770,577],{"class":74},[61,2772,580],{"class":78},[61,2774,107],{"class":82},[61,2776,2777],{"class":63,"line":383},[61,2778,89],{"class":82},[61,2780,2781],{"class":63,"line":397},[61,2782,2446],{"class":82},[61,2784,2785],{"class":63,"line":402},[61,2786,571],{"emptyLinePlaceholder":570},[61,2788,2789,2791,2793,2796,2798,2801,2803],{"class":63,"line":407},[61,2790,599],{"class":82},[61,2792,122],{"class":74},[61,2794,2795],{"class":125}," \"Son下的m_A = \"",[61,2797,129],{"class":74},[61,2799,2800],{"class":82}," s.m_A ",[61,2802,122],{"class":74},[61,2804,132],{"class":82},[61,2806,2807,2809,2811,2814,2816,2819,2821],{"class":63,"line":413},[61,2808,599],{"class":82},[61,2810,122],{"class":74},[61,2812,2813],{"class":125}," \"Base下的m_A = \"",[61,2815,129],{"class":74},[61,2817,2818],{"class":82}," s.Base::m_A ",[61,2820,122],{"class":74},[61,2822,132],{"class":82},[61,2824,2825],{"class":63,"line":423},[61,2826,571],{"emptyLinePlaceholder":570},[61,2828,2829,2832,2835],{"class":63,"line":428},[61,2830,2831],{"class":82},"    s.",[61,2833,2834],{"class":78},"func",[61,2836,626],{"class":82},[61,2838,2839,2842,2844],{"class":63,"line":433},[61,2840,2841],{"class":82},"    s.Base::",[61,2843,2834],{"class":78},[61,2845,626],{"class":82},[61,2847,2848,2850,2852,2854,2857],{"class":63,"line":442},[61,2849,2841],{"class":82},[61,2851,2834],{"class":78},[61,2853,2610],{"class":82},[61,2855,2856],{"class":879},"10",[61,2858,2859],{"class":82},");\n",[61,2861,2862],{"class":63,"line":447},[61,2863,571],{"emptyLinePlaceholder":570},[61,2865,2866],{"class":63,"line":460},[61,2867,830],{"class":82},[61,2869,2870,2872,2874],{"class":63,"line":465},[61,2871,841],{"class":74},[61,2873,844],{"class":78},[61,2875,847],{"class":82},[61,2877,2878],{"class":63,"line":474},[61,2879,571],{"emptyLinePlaceholder":570},[61,2881,2882,2884],{"class":63,"line":479},[61,2883,858],{"class":78},[61,2885,626],{"class":82},[61,2887,2888],{"class":63,"line":492},[61,2889,571],{"emptyLinePlaceholder":570},[61,2891,2892,2894],{"class":63,"line":497},[61,2893,876],{"class":74},[61,2895,2896],{"class":82}," EXIT_SUCCESS;\n",[61,2898,2899],{"class":63,"line":506},[61,2900,830],{"class":82},[13,2902,2903,2207],{},[16,2904,893],{},[13,2906,1459],{},[2908,2909,2910,2913,2916],"ol",{},[1502,2911,2912],{},"子类对象可以直接访问到子类中同名成员",[1502,2914,2915],{},"子类对象加作用域可以访问到父类同名成员",[1502,2917,2918],{},"当子类与父类拥有同名的成员函数，子类会隐藏父类中同名成员函数，加作用域可以访问到父类中同名函数",[36,2920,2921],{"id":2921},"继承同名静态成员处理方式",[13,2923,2924],{},"问题：继承中同名的静态成员在子类对象上如何进行访问？",[13,2926,2927],{},"静态成员和非静态成员出现同名，处理方式一致",[1499,2929,2930,2932],{},[1502,2931,2512],{},[1502,2933,2515],{},[13,2935,2936],{},[16,2937,1520],{},[51,2939,2941],{"className":53,"code":2940,"language":55,"meta":56,"style":56},"class Base {\npublic:\n    static void func()\n    {\n        cout \u003C\u003C \"Base - static void func()\" \u003C\u003C endl;\n    }\n    static void func(int a)\n    {\n        cout \u003C\u003C \"Base - static void func(int a)\" \u003C\u003C endl;\n    }\n\n    static int m_A;\n};\n\nint Base::m_A = 100;\n\nclass Son : public Base {\npublic:\n    static void func()\n    {\n        cout \u003C\u003C \"Son - static void func()\" \u003C\u003C endl;\n    }\n    static int m_A;\n};\n\nint Son::m_A = 200;\n\n//同名成员属性\nvoid test01()\n{\n    //通过对象访问\n    cout \u003C\u003C \"通过对象访问： \" \u003C\u003C endl;\n    Son s;\n    cout \u003C\u003C \"Son  下 m_A = \" \u003C\u003C s.m_A \u003C\u003C endl;\n    cout \u003C\u003C \"Base 下 m_A = \" \u003C\u003C s.Base::m_A \u003C\u003C endl;\n\n    //通过类名访问\n    cout \u003C\u003C \"通过类名访问： \" \u003C\u003C endl;\n    cout \u003C\u003C \"Son  下 m_A = \" \u003C\u003C Son::m_A \u003C\u003C endl;\n    cout \u003C\u003C \"Base 下 m_A = \" \u003C\u003C Son::Base::m_A \u003C\u003C endl;\n}\n\n//同名成员函数\nvoid test02()\n{\n    //通过对象访问\n    cout \u003C\u003C \"通过对象访问： \" \u003C\u003C endl;\n    Son s;\n    s.func();\n    s.Base::func();\n\n    cout \u003C\u003C \"通过类名访问： \" \u003C\u003C endl;\n    Son::func();\n    Son::Base::func();\n    //出现同名，子类会隐藏掉父类中所有同名成员函数，需要加作作用域访问\n    Son::Base::func(100);\n}\nint main() {\n\n    //test01();\n    test02();\n\n\n    return 0;\n}\n",[58,2942,2943,2951,2955,2967,2971,2984,2988,3004,3008,3021,3025,3029,3038,3042,3046,3061,3065,3079,3083,3093,3097,3110,3114,3122,3126,3130,3144,3148,3153,3161,3165,3170,3183,3187,3204,3221,3225,3230,3243,3261,3285,3289,3293,3298,3307,3311,3315,3327,3331,3339,3347,3351,3363,3373,3387,3392,3411,3415,3423,3427,3432,3439,3443,3447,3455],{"__ignoreMap":56},[61,2944,2945,2947,2949],{"class":63,"line":64},[61,2946,75],{"class":74},[61,2948,2262],{"class":78},[61,2950,2533],{"class":82},[61,2952,2953],{"class":63,"line":71},[61,2954,95],{"class":74},[61,2956,2957,2960,2963,2965],{"class":63,"line":86},[61,2958,2959],{"class":74},"    static",[61,2961,2962],{"class":74}," void",[61,2964,1617],{"class":78},[61,2966,107],{"class":82},[61,2968,2969],{"class":63,"line":92},[61,2970,113],{"class":82},[61,2972,2973,2975,2977,2980,2982],{"class":63,"line":98},[61,2974,119],{"class":82},[61,2976,122],{"class":74},[61,2978,2979],{"class":125}," \"Base - static void func()\"",[61,2981,129],{"class":74},[61,2983,132],{"class":82},[61,2985,2986],{"class":63,"line":110},[61,2987,138],{"class":82},[61,2989,2990,2992,2994,2996,2998,3000,3002],{"class":63,"line":116},[61,2991,2959],{"class":74},[61,2993,2962],{"class":74},[61,2995,1617],{"class":78},[61,2997,2610],{"class":82},[61,2999,841],{"class":74},[61,3001,2616],{"class":2615},[61,3003,2619],{"class":82},[61,3005,3006],{"class":63,"line":135},[61,3007,113],{"class":82},[61,3009,3010,3012,3014,3017,3019],{"class":63,"line":141},[61,3011,119],{"class":82},[61,3013,122],{"class":74},[61,3015,3016],{"class":125}," \"Base - static void func(int a)\"",[61,3018,129],{"class":74},[61,3020,132],{"class":82},[61,3022,3023],{"class":63,"line":151},[61,3024,138],{"class":82},[61,3026,3027],{"class":63,"line":156},[61,3028,571],{"emptyLinePlaceholder":570},[61,3030,3031,3033,3036],{"class":63,"line":170},[61,3032,2959],{"class":74},[61,3034,3035],{"class":74}," int",[61,3037,1551],{"class":82},[61,3039,3040],{"class":63,"line":175},[61,3041,246],{"class":82},[61,3043,3044],{"class":63,"line":185},[61,3045,571],{"emptyLinePlaceholder":570},[61,3047,3048,3050,3052,3055,3057,3059],{"class":63,"line":190},[61,3049,841],{"class":74},[61,3051,2262],{"class":78},[61,3053,3054],{"class":82},"::m_A ",[61,3056,2555],{"class":74},[61,3058,2558],{"class":879},[61,3060,883],{"class":82},[61,3062,3063],{"class":63,"line":204},[61,3064,571],{"emptyLinePlaceholder":570},[61,3066,3067,3069,3071,3073,3075,3077],{"class":63,"line":209},[61,3068,75],{"class":74},[61,3070,2094],{"class":78},[61,3072,1037],{"class":82},[61,3074,1040],{"class":74},[61,3076,2262],{"class":78},[61,3078,2533],{"class":82},[61,3080,3081],{"class":63,"line":219},[61,3082,95],{"class":74},[61,3084,3085,3087,3089,3091],{"class":63,"line":224},[61,3086,2959],{"class":74},[61,3088,2962],{"class":74},[61,3090,1617],{"class":78},[61,3092,107],{"class":82},[61,3094,3095],{"class":63,"line":238},[61,3096,113],{"class":82},[61,3098,3099,3101,3103,3106,3108],{"class":63,"line":243},[61,3100,119],{"class":82},[61,3102,122],{"class":74},[61,3104,3105],{"class":125}," \"Son - static void func()\"",[61,3107,129],{"class":74},[61,3109,132],{"class":82},[61,3111,3112],{"class":63,"line":249},[61,3113,138],{"class":82},[61,3115,3116,3118,3120],{"class":63,"line":255},[61,3117,2959],{"class":74},[61,3119,3035],{"class":74},[61,3121,1551],{"class":82},[61,3123,3124],{"class":63,"line":263},[61,3125,246],{"class":82},[61,3127,3128],{"class":63,"line":268},[61,3129,571],{"emptyLinePlaceholder":570},[61,3131,3132,3134,3136,3138,3140,3142],{"class":63,"line":273},[61,3133,841],{"class":74},[61,3135,2094],{"class":78},[61,3137,3054],{"class":82},[61,3139,2555],{"class":74},[61,3141,2699],{"class":879},[61,3143,883],{"class":82},[61,3145,3146],{"class":63,"line":282},[61,3147,571],{"emptyLinePlaceholder":570},[61,3149,3150],{"class":63,"line":287},[61,3151,3152],{"class":67},"//同名成员属性\n",[61,3154,3155,3157,3159],{"class":63,"line":300},[61,3156,577],{"class":74},[61,3158,580],{"class":78},[61,3160,107],{"class":82},[61,3162,3163],{"class":63,"line":305},[61,3164,89],{"class":82},[61,3166,3167],{"class":63,"line":314},[61,3168,3169],{"class":67},"    //通过对象访问\n",[61,3171,3172,3174,3176,3179,3181],{"class":63,"line":319},[61,3173,599],{"class":82},[61,3175,122],{"class":74},[61,3177,3178],{"class":125}," \"通过对象访问： \"",[61,3180,129],{"class":74},[61,3182,132],{"class":82},[61,3184,3185],{"class":63,"line":332},[61,3186,2446],{"class":82},[61,3188,3189,3191,3193,3196,3198,3200,3202],{"class":63,"line":337},[61,3190,599],{"class":82},[61,3192,122],{"class":74},[61,3194,3195],{"class":125}," \"Son  下 m_A = \"",[61,3197,129],{"class":74},[61,3199,2800],{"class":82},[61,3201,122],{"class":74},[61,3203,132],{"class":82},[61,3205,3206,3208,3210,3213,3215,3217,3219],{"class":63,"line":346},[61,3207,599],{"class":82},[61,3209,122],{"class":74},[61,3211,3212],{"class":125}," \"Base 下 m_A = \"",[61,3214,129],{"class":74},[61,3216,2818],{"class":82},[61,3218,122],{"class":74},[61,3220,132],{"class":82},[61,3222,3223],{"class":63,"line":351},[61,3224,571],{"emptyLinePlaceholder":570},[61,3226,3227],{"class":63,"line":364},[61,3228,3229],{"class":67},"    //通过类名访问\n",[61,3231,3232,3234,3236,3239,3241],{"class":63,"line":369},[61,3233,599],{"class":82},[61,3235,122],{"class":74},[61,3237,3238],{"class":125}," \"通过类名访问： \"",[61,3240,129],{"class":74},[61,3242,132],{"class":82},[61,3244,3245,3247,3249,3251,3253,3255,3257,3259],{"class":63,"line":378},[61,3246,599],{"class":82},[61,3248,122],{"class":74},[61,3250,3195],{"class":125},[61,3252,129],{"class":74},[61,3254,2094],{"class":78},[61,3256,3054],{"class":82},[61,3258,122],{"class":74},[61,3260,132],{"class":82},[61,3262,3263,3265,3267,3269,3271,3273,3276,3279,3281,3283],{"class":63,"line":383},[61,3264,599],{"class":82},[61,3266,122],{"class":74},[61,3268,3212],{"class":125},[61,3270,129],{"class":74},[61,3272,2094],{"class":78},[61,3274,3275],{"class":82},"::",[61,3277,3278],{"class":78},"Base",[61,3280,3054],{"class":82},[61,3282,122],{"class":74},[61,3284,132],{"class":82},[61,3286,3287],{"class":63,"line":397},[61,3288,830],{"class":82},[61,3290,3291],{"class":63,"line":402},[61,3292,571],{"emptyLinePlaceholder":570},[61,3294,3295],{"class":63,"line":407},[61,3296,3297],{"class":67},"//同名成员函数\n",[61,3299,3300,3302,3305],{"class":63,"line":413},[61,3301,577],{"class":74},[61,3303,3304],{"class":78}," test02",[61,3306,107],{"class":82},[61,3308,3309],{"class":63,"line":423},[61,3310,89],{"class":82},[61,3312,3313],{"class":63,"line":428},[61,3314,3169],{"class":67},[61,3316,3317,3319,3321,3323,3325],{"class":63,"line":433},[61,3318,599],{"class":82},[61,3320,122],{"class":74},[61,3322,3178],{"class":125},[61,3324,129],{"class":74},[61,3326,132],{"class":82},[61,3328,3329],{"class":63,"line":442},[61,3330,2446],{"class":82},[61,3332,3333,3335,3337],{"class":63,"line":447},[61,3334,2831],{"class":82},[61,3336,2834],{"class":78},[61,3338,626],{"class":82},[61,3340,3341,3343,3345],{"class":63,"line":460},[61,3342,2841],{"class":82},[61,3344,2834],{"class":78},[61,3346,626],{"class":82},[61,3348,3349],{"class":63,"line":465},[61,3350,571],{"emptyLinePlaceholder":570},[61,3352,3353,3355,3357,3359,3361],{"class":63,"line":474},[61,3354,599],{"class":82},[61,3356,122],{"class":74},[61,3358,3238],{"class":125},[61,3360,129],{"class":74},[61,3362,132],{"class":82},[61,3364,3365,3367,3369,3371],{"class":63,"line":479},[61,3366,2361],{"class":78},[61,3368,3275],{"class":82},[61,3370,2834],{"class":78},[61,3372,626],{"class":82},[61,3374,3375,3377,3379,3381,3383,3385],{"class":63,"line":492},[61,3376,2361],{"class":78},[61,3378,3275],{"class":82},[61,3380,3278],{"class":78},[61,3382,3275],{"class":82},[61,3384,2834],{"class":78},[61,3386,626],{"class":82},[61,3388,3389],{"class":63,"line":497},[61,3390,3391],{"class":67},"    //出现同名，子类会隐藏掉父类中所有同名成员函数，需要加作作用域访问\n",[61,3393,3394,3396,3398,3400,3402,3404,3406,3409],{"class":63,"line":506},[61,3395,2361],{"class":78},[61,3397,3275],{"class":82},[61,3399,3278],{"class":78},[61,3401,3275],{"class":82},[61,3403,2834],{"class":78},[61,3405,2610],{"class":82},[61,3407,3408],{"class":879},"100",[61,3410,2859],{"class":82},[61,3412,3413],{"class":63,"line":511},[61,3414,830],{"class":82},[61,3416,3417,3419,3421],{"class":63,"line":524},[61,3418,841],{"class":74},[61,3420,844],{"class":78},[61,3422,847],{"class":82},[61,3424,3425],{"class":63,"line":529},[61,3426,571],{"emptyLinePlaceholder":570},[61,3428,3429],{"class":63,"line":538},[61,3430,3431],{"class":67},"    //test01();\n",[61,3433,3434,3437],{"class":63,"line":543},[61,3435,3436],{"class":78},"    test02",[61,3438,626],{"class":82},[61,3440,3441],{"class":63,"line":557},[61,3442,571],{"emptyLinePlaceholder":570},[61,3444,3445],{"class":63,"line":562},[61,3446,571],{"emptyLinePlaceholder":570},[61,3448,3449,3451,3453],{"class":63,"line":567},[61,3450,876],{"class":74},[61,3452,880],{"class":879},[61,3454,883],{"class":82},[61,3456,3457],{"class":63,"line":574},[61,3458,830],{"class":82},[13,3460,3461,2207],{},[16,3462,893],{},[2233,3464,3465],{},[13,3466,3467],{},"总结：同名静态成员处理方式和非静态处理方式一样，只不过有两种访问的方式（通过对象 和 通过类名）",[36,3469,3470],{"id":3470},"多继承语法",[13,3472,3473,3474],{},"C++允许",[16,3475,3476],{},"一个类继承多个类",[13,3478,3479,3480],{},"语法：",[58,3481,3482],{}," class 子类 ：继承方式 父类1 ， 继承方式 父类2...",[13,3484,3485],{},"多继承可能会引发父类中有同名成员出现，需要加作用域区分",[13,3487,3488],{},[16,3489,3490],{},"C++实际开发中不建议用多继承",[13,3492,3493],{},[16,3494,1520],{},[51,3496,3498],{"className":53,"code":3497,"language":55,"meta":56,"style":56},"class Base1 {\npublic:\n    Base1()\n    {\n        m_A = 100;\n    }\npublic:\n    int m_A;\n};\n\nclass Base2 {\npublic:\n    Base2()\n    {\n        m_A = 200;  //开始是m_B 不会出问题，但是改为mA就会出现不明确\n    }\npublic:\n    int m_A;\n};\n\n//语法：class 子类：继承方式 父类1 ，继承方式 父类2 \nclass Son : public Base2, public Base1 \n{\npublic:\n    Son()\n    {\n        m_C = 300;\n        m_D = 400;\n    }\npublic:\n    int m_C;\n    int m_D;\n};\n\n//多继承容易产生成员同名的情况\n//通过使用类名作用域可以区分调用哪一个基类的成员\nvoid test01()\n{\n    Son s;\n    cout \u003C\u003C \"sizeof Son = \" \u003C\u003C sizeof(s) \u003C\u003C endl;\n    cout \u003C\u003C s.Base1::m_A \u003C\u003C endl;\n    cout \u003C\u003C s.Base2::m_A \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[58,3499,3500,3509,3513,3520,3524,3534,3538,3542,3548,3552,3556,3565,3569,3576,3580,3594,3598,3602,3608,3612,3616,3621,3642,3646,3650,3656,3660,3672,3684,3688,3692,3698,3704,3708,3712,3717,3722,3730,3734,3738,3757,3770,3783,3787,3791,3799,3803,3809,3813,3817,3825],{"__ignoreMap":56},[61,3501,3502,3504,3507],{"class":63,"line":64},[61,3503,75],{"class":74},[61,3505,3506],{"class":78}," Base1",[61,3508,2533],{"class":82},[61,3510,3511],{"class":63,"line":71},[61,3512,95],{"class":74},[61,3514,3515,3518],{"class":63,"line":86},[61,3516,3517],{"class":78},"    Base1",[61,3519,107],{"class":82},[61,3521,3522],{"class":63,"line":92},[61,3523,113],{"class":82},[61,3525,3526,3528,3530,3532],{"class":63,"line":98},[61,3527,2552],{"class":82},[61,3529,2555],{"class":74},[61,3531,2558],{"class":879},[61,3533,883],{"class":82},[61,3535,3536],{"class":63,"line":110},[61,3537,138],{"class":82},[61,3539,3540],{"class":63,"line":116},[61,3541,95],{"class":74},[61,3543,3544,3546],{"class":63,"line":135},[61,3545,1548],{"class":74},[61,3547,1551],{"class":82},[61,3549,3550],{"class":63,"line":141},[61,3551,246],{"class":82},[61,3553,3554],{"class":63,"line":151},[61,3555,571],{"emptyLinePlaceholder":570},[61,3557,3558,3560,3563],{"class":63,"line":156},[61,3559,75],{"class":74},[61,3561,3562],{"class":78}," Base2",[61,3564,2533],{"class":82},[61,3566,3567],{"class":63,"line":170},[61,3568,95],{"class":74},[61,3570,3571,3574],{"class":63,"line":175},[61,3572,3573],{"class":78},"    Base2",[61,3575,107],{"class":82},[61,3577,3578],{"class":63,"line":185},[61,3579,113],{"class":82},[61,3581,3582,3584,3586,3588,3591],{"class":63,"line":190},[61,3583,2552],{"class":82},[61,3585,2555],{"class":74},[61,3587,2699],{"class":879},[61,3589,3590],{"class":82},";",[61,3592,3593],{"class":67},"  //开始是m_B 不会出问题，但是改为mA就会出现不明确\n",[61,3595,3596],{"class":63,"line":204},[61,3597,138],{"class":82},[61,3599,3600],{"class":63,"line":209},[61,3601,95],{"class":74},[61,3603,3604,3606],{"class":63,"line":219},[61,3605,1548],{"class":74},[61,3607,1551],{"class":82},[61,3609,3610],{"class":63,"line":224},[61,3611,246],{"class":82},[61,3613,3614],{"class":63,"line":238},[61,3615,571],{"emptyLinePlaceholder":570},[61,3617,3618],{"class":63,"line":243},[61,3619,3620],{"class":67},"//语法：class 子类：继承方式 父类1 ，继承方式 父类2 \n",[61,3622,3623,3625,3627,3629,3631,3633,3636,3638,3640],{"class":63,"line":249},[61,3624,75],{"class":74},[61,3626,2094],{"class":78},[61,3628,1037],{"class":82},[61,3630,1040],{"class":74},[61,3632,3562],{"class":78},[61,3634,3635],{"class":82},", ",[61,3637,1040],{"class":74},[61,3639,3506],{"class":78},[61,3641,83],{"class":82},[61,3643,3644],{"class":63,"line":255},[61,3645,89],{"class":82},[61,3647,3648],{"class":63,"line":263},[61,3649,95],{"class":74},[61,3651,3652,3654],{"class":63,"line":268},[61,3653,2361],{"class":78},[61,3655,107],{"class":82},[61,3657,3658],{"class":63,"line":273},[61,3659,113],{"class":82},[61,3661,3662,3665,3667,3670],{"class":63,"line":282},[61,3663,3664],{"class":82},"        m_C ",[61,3666,2555],{"class":74},[61,3668,3669],{"class":879}," 300",[61,3671,883],{"class":82},[61,3673,3674,3677,3679,3682],{"class":63,"line":287},[61,3675,3676],{"class":82},"        m_D ",[61,3678,2555],{"class":74},[61,3680,3681],{"class":879}," 400",[61,3683,883],{"class":82},[61,3685,3686],{"class":63,"line":300},[61,3687,138],{"class":82},[61,3689,3690],{"class":63,"line":305},[61,3691,95],{"class":74},[61,3693,3694,3696],{"class":63,"line":314},[61,3695,1548],{"class":74},[61,3697,1575],{"class":82},[61,3699,3700,3702],{"class":63,"line":319},[61,3701,1548],{"class":74},[61,3703,2115],{"class":82},[61,3705,3706],{"class":63,"line":332},[61,3707,246],{"class":82},[61,3709,3710],{"class":63,"line":337},[61,3711,571],{"emptyLinePlaceholder":570},[61,3713,3714],{"class":63,"line":346},[61,3715,3716],{"class":67},"//多继承容易产生成员同名的情况\n",[61,3718,3719],{"class":63,"line":351},[61,3720,3721],{"class":67},"//通过使用类名作用域可以区分调用哪一个基类的成员\n",[61,3723,3724,3726,3728],{"class":63,"line":364},[61,3725,577],{"class":74},[61,3727,580],{"class":78},[61,3729,107],{"class":82},[61,3731,3732],{"class":63,"line":369},[61,3733,89],{"class":82},[61,3735,3736],{"class":63,"line":378},[61,3737,2446],{"class":82},[61,3739,3740,3742,3744,3746,3748,3750,3753,3755],{"class":63,"line":383},[61,3741,599],{"class":82},[61,3743,122],{"class":74},[61,3745,2144],{"class":125},[61,3747,129],{"class":74},[61,3749,2149],{"class":74},[61,3751,3752],{"class":82},"(s) ",[61,3754,122],{"class":74},[61,3756,132],{"class":82},[61,3758,3759,3761,3763,3766,3768],{"class":63,"line":397},[61,3760,599],{"class":82},[61,3762,122],{"class":74},[61,3764,3765],{"class":82}," s.Base1::m_A ",[61,3767,122],{"class":74},[61,3769,132],{"class":82},[61,3771,3772,3774,3776,3779,3781],{"class":63,"line":402},[61,3773,599],{"class":82},[61,3775,122],{"class":74},[61,3777,3778],{"class":82}," s.Base2::m_A ",[61,3780,122],{"class":74},[61,3782,132],{"class":82},[61,3784,3785],{"class":63,"line":407},[61,3786,830],{"class":82},[61,3788,3789],{"class":63,"line":413},[61,3790,571],{"emptyLinePlaceholder":570},[61,3792,3793,3795,3797],{"class":63,"line":423},[61,3794,841],{"class":74},[61,3796,844],{"class":78},[61,3798,847],{"class":82},[61,3800,3801],{"class":63,"line":428},[61,3802,571],{"emptyLinePlaceholder":570},[61,3804,3805,3807],{"class":63,"line":433},[61,3806,858],{"class":78},[61,3808,626],{"class":82},[61,3810,3811],{"class":63,"line":442},[61,3812,571],{"emptyLinePlaceholder":570},[61,3814,3815],{"class":63,"line":447},[61,3816,571],{"emptyLinePlaceholder":570},[61,3818,3819,3821,3823],{"class":63,"line":460},[61,3820,876],{"class":74},[61,3822,880],{"class":879},[61,3824,883],{"class":82},[61,3826,3827],{"class":63,"line":465},[61,3828,830],{"class":82},[13,3830,3831,2207],{},[16,3832,893],{},[2233,3834,3835],{},[13,3836,3837],{},"总结： 多继承中如果父类中出现了同名情况，子类使用时候要加作用域",[36,3839,3840],{"id":3840},"菱形继承",[13,3842,3843],{},[16,3844,3845],{},"菱形继承概念：",[13,3847,3848],{},"​\t两个派生类继承同一个基类",[13,3850,3851],{},"​\t又有某个类同时继承者两个派生类",[13,3853,3854],{},"​\t这种继承被称为菱形继承，或者钻石继承",[13,3856,3857],{},[16,3858,3859],{},"典型的菱形继承案例：",[13,3861,3862],{},[25,3863],{"alt":3864,"src":3865},"IMG_256","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/10/05/stage3-clip-image002-6a3e181aea.webp",[13,3867,3868],{},[16,3869,3870],{},"菱形继承问题：",[2908,3872,3873,3883],{},[1502,3874,3875],{},[51,3876,3881],{"className":3877,"code":3879,"language":3880},[3878],"language-text","羊继承了动物的数据，驼同样继承了动物的数据，当草泥马使用数据时，就会产生二义性。\n","text",[58,3882,3879],{"__ignoreMap":56},[1502,3884,3885],{},"草泥马继承自动物的数据继承了两份，其实我们应该清楚，这份数据我们只需要一份就可以。",[13,3887,3888],{},[16,3889,1520],{},[51,3891,3893],{"className":53,"code":3892,"language":55,"meta":56,"style":56},"class Animal\n{\npublic:\n    int m_Age;\n};\n\n//继承前加virtual关键字后，变为虚继承\n//此时公共的父类Animal称为虚基类\nclass Sheep : virtual public Animal {};\nclass Tuo   : virtual public Animal {};\nclass SheepTuo : public Sheep, public Tuo {};\n\nvoid test01()\n{\n    SheepTuo st;\n    st.Sheep::m_Age = 100;\n    st.Tuo::m_Age = 200;\n\n    cout \u003C\u003C \"st.Sheep::m_Age = \" \u003C\u003C st.Sheep::m_Age \u003C\u003C endl;\n    cout \u003C\u003C \"st.Tuo::m_Age = \" \u003C\u003C  st.Tuo::m_Age \u003C\u003C endl;\n    cout \u003C\u003C \"st.m_Age = \" \u003C\u003C st.m_Age \u003C\u003C endl;\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[58,3894,3895,3902,3906,3910,3917,3921,3925,3930,3935,3956,3974,3995,3999,4007,4011,4016,4027,4038,4042,4060,4078,4096,4100,4104,4112,4116,4122,4126,4130,4138],{"__ignoreMap":56},[61,3896,3897,3899],{"class":63,"line":64},[61,3898,75],{"class":74},[61,3900,3901],{"class":78}," Animal\n",[61,3903,3904],{"class":63,"line":71},[61,3905,89],{"class":82},[61,3907,3908],{"class":63,"line":86},[61,3909,95],{"class":74},[61,3911,3912,3914],{"class":63,"line":92},[61,3913,1548],{"class":74},[61,3915,3916],{"class":82}," m_Age;\n",[61,3918,3919],{"class":63,"line":98},[61,3920,246],{"class":82},[61,3922,3923],{"class":63,"line":110},[61,3924,571],{"emptyLinePlaceholder":570},[61,3926,3927],{"class":63,"line":116},[61,3928,3929],{"class":67},"//继承前加virtual关键字后，变为虚继承\n",[61,3931,3932],{"class":63,"line":135},[61,3933,3934],{"class":67},"//此时公共的父类Animal称为虚基类\n",[61,3936,3937,3939,3942,3944,3947,3950,3953],{"class":63,"line":141},[61,3938,75],{"class":74},[61,3940,3941],{"class":78}," Sheep",[61,3943,1037],{"class":82},[61,3945,3946],{"class":74},"virtual",[61,3948,3949],{"class":74}," public",[61,3951,3952],{"class":78}," Animal",[61,3954,3955],{"class":82}," {};\n",[61,3957,3958,3960,3963,3966,3968,3970,3972],{"class":63,"line":151},[61,3959,75],{"class":74},[61,3961,3962],{"class":78}," Tuo",[61,3964,3965],{"class":82},"   : ",[61,3967,3946],{"class":74},[61,3969,3949],{"class":74},[61,3971,3952],{"class":78},[61,3973,3955],{"class":82},[61,3975,3976,3978,3981,3983,3985,3987,3989,3991,3993],{"class":63,"line":156},[61,3977,75],{"class":74},[61,3979,3980],{"class":78}," SheepTuo",[61,3982,1037],{"class":82},[61,3984,1040],{"class":74},[61,3986,3941],{"class":78},[61,3988,3635],{"class":82},[61,3990,1040],{"class":74},[61,3992,3962],{"class":78},[61,3994,3955],{"class":82},[61,3996,3997],{"class":63,"line":170},[61,3998,571],{"emptyLinePlaceholder":570},[61,4000,4001,4003,4005],{"class":63,"line":175},[61,4002,577],{"class":74},[61,4004,580],{"class":78},[61,4006,107],{"class":82},[61,4008,4009],{"class":63,"line":185},[61,4010,89],{"class":82},[61,4012,4013],{"class":63,"line":190},[61,4014,4015],{"class":82},"    SheepTuo st;\n",[61,4017,4018,4021,4023,4025],{"class":63,"line":204},[61,4019,4020],{"class":82},"    st.Sheep::m_Age ",[61,4022,2555],{"class":74},[61,4024,2558],{"class":879},[61,4026,883],{"class":82},[61,4028,4029,4032,4034,4036],{"class":63,"line":209},[61,4030,4031],{"class":82},"    st.Tuo::m_Age ",[61,4033,2555],{"class":74},[61,4035,2699],{"class":879},[61,4037,883],{"class":82},[61,4039,4040],{"class":63,"line":219},[61,4041,571],{"emptyLinePlaceholder":570},[61,4043,4044,4046,4048,4051,4053,4056,4058],{"class":63,"line":224},[61,4045,599],{"class":82},[61,4047,122],{"class":74},[61,4049,4050],{"class":125}," \"st.Sheep::m_Age = \"",[61,4052,129],{"class":74},[61,4054,4055],{"class":82}," st.Sheep::m_Age ",[61,4057,122],{"class":74},[61,4059,132],{"class":82},[61,4061,4062,4064,4066,4069,4071,4074,4076],{"class":63,"line":238},[61,4063,599],{"class":82},[61,4065,122],{"class":74},[61,4067,4068],{"class":125}," \"st.Tuo::m_Age = \"",[61,4070,129],{"class":74},[61,4072,4073],{"class":82},"  st.Tuo::m_Age ",[61,4075,122],{"class":74},[61,4077,132],{"class":82},[61,4079,4080,4082,4084,4087,4089,4092,4094],{"class":63,"line":243},[61,4081,599],{"class":82},[61,4083,122],{"class":74},[61,4085,4086],{"class":125}," \"st.m_Age = \"",[61,4088,129],{"class":74},[61,4090,4091],{"class":82}," st.m_Age ",[61,4093,122],{"class":74},[61,4095,132],{"class":82},[61,4097,4098],{"class":63,"line":249},[61,4099,830],{"class":82},[61,4101,4102],{"class":63,"line":255},[61,4103,571],{"emptyLinePlaceholder":570},[61,4105,4106,4108,4110],{"class":63,"line":263},[61,4107,841],{"class":74},[61,4109,844],{"class":78},[61,4111,847],{"class":82},[61,4113,4114],{"class":63,"line":268},[61,4115,571],{"emptyLinePlaceholder":570},[61,4117,4118,4120],{"class":63,"line":273},[61,4119,858],{"class":78},[61,4121,626],{"class":82},[61,4123,4124],{"class":63,"line":282},[61,4125,571],{"emptyLinePlaceholder":570},[61,4127,4128],{"class":63,"line":287},[61,4129,571],{"emptyLinePlaceholder":570},[61,4131,4132,4134,4136],{"class":63,"line":300},[61,4133,876],{"class":74},[61,4135,880],{"class":879},[61,4137,883],{"class":82},[61,4139,4140],{"class":63,"line":305},[61,4141,830],{"class":82},[13,4143,4144,2207],{},[16,4145,893],{},[13,4147,1459],{},[1499,4149,4150,4153],{},[1502,4151,4152],{},"菱形继承带来的主要问题是子类继承两份相同的数据，导致资源浪费以及毫无意义",[1502,4154,4155],{},"利用虚继承可以解决菱形继承问题",[4157,4158,4159],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":56,"searchDepth":71,"depth":71,"links":4161},[4162],{"id":5,"depth":86,"text":5},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","13.5",13050000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch13-5-继承",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","zh-CN","zh-cn",{},{"title":5,"description":56},"GYW5t9iXZj5VM5ctWvCw4f4EZ77n4rb8SsbJHzSk310",[4182,4188,4193,4199,4205,4211,4217,4223,4229,4230,4236,4242,4248,4254,4260,4266,4272,4278,4284,4290,4296,4302,4308,4314,4320,4326,4332,4338,4344,4350,4356,4362,4368,4374,4380,4386,4392,4398,4404,4410,4416,4422,4428,4434,4440,4446,4452,4458,4464,4470,4476,4482,4488,4494,4500,4506,4512,4518,4524,4530,4536,4542,4548,4554,4560,4566,4572,4578,4584,4590],{"path":4183,"stem":4184,"title":4185,"date":4166,"chapter":4186,"chapterSort":4187,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识","1",1000000,{"path":4189,"stem":4190,"title":4191,"date":4166,"chapter":2856,"chapterSort":4192,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期",10000000,{"path":4194,"stem":4195,"title":4196,"date":4166,"chapter":4197,"chapterSort":4198,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":4200,"stem":4201,"title":4202,"date":4166,"chapter":4203,"chapterSort":4204,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":4206,"stem":4207,"title":4208,"date":4166,"chapter":4209,"chapterSort":4210,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":4212,"stem":4213,"title":4214,"date":4166,"chapter":4215,"chapterSort":4216,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":4218,"stem":4219,"title":4220,"date":4166,"chapter":4221,"chapterSort":4222,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":4224,"stem":4225,"title":4226,"date":4166,"chapter":4227,"chapterSort":4228,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":4163,"stem":4172,"title":5,"date":4166,"chapter":4164,"chapterSort":4165,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},{"path":4231,"stem":4232,"title":4233,"date":4166,"chapter":4234,"chapterSort":4235,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":4237,"stem":4238,"title":4239,"date":4166,"chapter":4240,"chapterSort":4241,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":4243,"stem":4244,"title":4245,"date":4166,"chapter":4246,"chapterSort":4247,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":4249,"stem":4250,"title":4251,"date":4166,"chapter":4252,"chapterSort":4253,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":4255,"stem":4256,"title":4257,"date":4166,"chapter":4258,"chapterSort":4259,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":4261,"stem":4262,"title":4263,"date":4166,"chapter":4264,"chapterSort":4265,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":4267,"stem":4268,"title":4269,"date":4166,"chapter":4270,"chapterSort":4271,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":4273,"stem":4274,"title":4275,"date":4166,"chapter":4276,"chapterSort":4277,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":4279,"stem":4280,"title":4281,"date":4166,"chapter":4282,"chapterSort":4283,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":4285,"stem":4286,"title":4287,"date":4166,"chapter":4288,"chapterSort":4289,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":4291,"stem":4292,"title":4293,"date":4166,"chapter":4294,"chapterSort":4295,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":4297,"stem":4298,"title":4299,"date":4166,"chapter":4300,"chapterSort":4301,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":4303,"stem":4304,"title":4305,"date":4166,"chapter":4306,"chapterSort":4307,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":4309,"stem":4310,"title":4311,"date":4166,"chapter":4312,"chapterSort":4313,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":4315,"stem":4316,"title":4317,"date":4166,"chapter":4318,"chapterSort":4319,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","auto","18.1",18010000,{"path":4321,"stem":4322,"title":4323,"date":4166,"chapter":4324,"chapterSort":4325,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":4327,"stem":4328,"title":4329,"date":4166,"chapter":4330,"chapterSort":4331,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":4333,"stem":4334,"title":4335,"date":4166,"chapter":4336,"chapterSort":4337,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":4339,"stem":4340,"title":4341,"date":4166,"chapter":4342,"chapterSort":4343,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":4345,"stem":4346,"title":4347,"date":4166,"chapter":4348,"chapterSort":4349,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":4351,"stem":4352,"title":4353,"date":4166,"chapter":4354,"chapterSort":4355,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":4357,"stem":4358,"title":4359,"date":4166,"chapter":4360,"chapterSort":4361,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":4363,"stem":4364,"title":4365,"date":4166,"chapter":4366,"chapterSort":4367,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":4369,"stem":4370,"title":4371,"date":4166,"chapter":4372,"chapterSort":4373,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":4375,"stem":4376,"title":4377,"date":4166,"chapter":4378,"chapterSort":4379,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":4381,"stem":4382,"title":4383,"date":4166,"chapter":4384,"chapterSort":4385,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":4387,"stem":4388,"title":4389,"date":4166,"chapter":4390,"chapterSort":4391,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":4393,"stem":4394,"title":4395,"date":4166,"chapter":4396,"chapterSort":4397,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":4399,"stem":4400,"title":4401,"date":4166,"chapter":4402,"chapterSort":4403,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":4405,"stem":4406,"title":4407,"date":4166,"chapter":4408,"chapterSort":4409,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":4411,"stem":4412,"title":4413,"date":4166,"chapter":4414,"chapterSort":4415,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":4417,"stem":4418,"title":4419,"date":4166,"chapter":4420,"chapterSort":4421,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":4423,"stem":4424,"title":4425,"date":4166,"chapter":4426,"chapterSort":4427,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":4429,"stem":4430,"title":4431,"date":4166,"chapter":4432,"chapterSort":4433,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":4435,"stem":4436,"title":4437,"date":4166,"chapter":4438,"chapterSort":4439,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":4441,"stem":4442,"title":4443,"date":4166,"chapter":4444,"chapterSort":4445,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":4447,"stem":4448,"title":4449,"date":4166,"chapter":4450,"chapterSort":4451,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":4453,"stem":4454,"title":4455,"date":4166,"chapter":4456,"chapterSort":4457,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":4459,"stem":4460,"title":4461,"date":4166,"chapter":4462,"chapterSort":4463,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":4465,"stem":4466,"title":4467,"date":4166,"chapter":4468,"chapterSort":4469,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++","18",18000000,{"path":4471,"stem":4472,"title":4473,"date":4166,"chapter":4474,"chapterSort":4475,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":4477,"stem":4478,"title":4479,"date":4166,"chapter":4480,"chapterSort":4481,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":4483,"stem":4484,"title":4485,"date":4166,"chapter":4486,"chapterSort":4487,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":4489,"stem":4490,"title":4491,"date":4166,"chapter":4492,"chapterSort":4493,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":4495,"stem":4496,"title":4497,"date":4166,"chapter":4498,"chapterSort":4499,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":4501,"stem":4502,"title":4503,"date":4166,"chapter":4504,"chapterSort":4505,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":4507,"stem":4508,"title":4509,"date":4166,"chapter":4510,"chapterSort":4511,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":4513,"stem":4514,"title":4515,"date":4166,"chapter":4516,"chapterSort":4517,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":4519,"stem":4520,"title":4521,"date":4166,"chapter":4522,"chapterSort":4523,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":4525,"stem":4526,"title":4527,"date":4166,"chapter":4528,"chapterSort":4529,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":4531,"stem":4532,"title":4533,"date":4166,"chapter":4534,"chapterSort":4535,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":4537,"stem":4538,"title":4539,"date":4166,"chapter":4540,"chapterSort":4541,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":4543,"stem":4544,"title":4545,"date":4166,"chapter":4546,"chapterSort":4547,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放","2",2000000,{"path":4549,"stem":4550,"title":4551,"date":4166,"chapter":4552,"chapterSort":4553,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出","3",3000000,{"path":4555,"stem":4556,"title":4557,"date":4166,"chapter":4558,"chapterSort":4559,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":4561,"stem":4562,"title":4563,"date":4166,"chapter":4564,"chapterSort":4565,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":4567,"stem":4568,"title":4569,"date":4166,"chapter":4570,"chapterSort":4571,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":4573,"stem":4574,"title":4575,"date":4166,"chapter":4576,"chapterSort":4577,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":4579,"stem":4580,"title":4581,"date":4166,"chapter":4582,"chapterSort":4583,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":4585,"stem":4586,"title":4587,"date":4166,"chapter":4588,"chapterSort":4589,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":4173},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":4169,"stem":4591,"title":4592,"date":4166,"chapter":4174,"chapterSort":4593,"docKey":4168,"docRoot":4169,"docTitle":4170,"isWikiDoc":570,"isWikiIndex":570},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":4595},[4596,4599,4602,4605,4608],{"path":4597,"localeSlug":4598,"i18nKey":4172},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","en-us",{"path":4600,"localeSlug":4601,"i18nKey":4172},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","zh-hant",{"path":4603,"localeSlug":4604,"i18nKey":4172},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","zh-hk",{"path":4606,"localeSlug":4607,"i18nKey":4172},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","zh-tw",{"path":4163,"localeSlug":4177,"i18nKey":4172},[4597,4175,4600,4175,4603,4175,4606,4175,4163,4175],1780663031248]