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