[{"data":1,"prerenderedAt":9136},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban":3,"wiki-doc-items-2023-10-05-cplusplus-jiao-xue":8578,"wiki:author-members":9124},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":8565,"chapterOrder":8566,"date":8567,"description":113,"docKey":8568,"docRoot":8569,"docTitle":8570,"extension":8571,"isWikiDoc":184,"isWikiIndex":8572,"meta":8573,"navigation":184,"path":8574,"seo":8575,"stem":8576,"wikiDepth":121,"__hash__":8577},"wiki\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板.md","模板",[7],"董佳辉",{"type":9,"value":10,"toc":8558},"minimark",[11,14,18,30,33,36,43,46,52,58,61,71,74,88,92,95,102,107,146,156,161,164,167,170,175,653,657,665,668,679,682,685,693,697,1005,1009,1015,1017,1022,1025,1028,1053,1055,1711,1716,1722,1725,1728,1733,1744,1748,2015,2019,2025,2028,2031,2034,2049,2053,2432,2436,2442,2445,2448,2453,2458,2463,2521,2527,2530,2533,2590,2596,2599,2609,2613,3286,3290,3296,3298,3306,3308,3311,3314,3321,3325,3347,3353,3357,3359,3361,3363,3367,3638,3642,3648,3651,3654,3657,3665,3669,4008,4012,4018,4020,4028,4031,4034,4042,4046,4340,4344,4350,4353,4356,4359,4364,4367,4378,4382,5001,5005,5011,5013,5021,5024,5027,5038,5042,5341,5345,5351,5354,5357,5360,5364,5715,5719,5725,5728,5731,5733,5738,5741,5746,5749,5757,5761,5764,6022,6028,6031,6175,6184,6187,6190,6192,6197,6200,6203,6207,6728,6732,6738,6741,6744,6747,6770,6774,6777,7672,7678,7681,8537,8549,8551,8554],[12,13,5],"h2",{"id":5},[15,16,17],"h3",{"id":17},"模板的概念",[19,20,21,22,26,27],"p",{},"模板就是建立",[23,24,25],"strong",{},"通用的模具","，大大",[23,28,29],{},"提高复用性",[19,31,32],{},"例如生活中的模板",[19,34,35],{},"一寸照片模板：",[19,37,38],{},[39,40],"img",{"alt":41,"src":42},"1547105026929","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002Fstage5-1547105026929-05f23198cb.webp",[19,44,45],{},"PPT模板：",[19,47,48],{},[39,49],{"alt":50,"src":51},"1547103297864","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002Fstage5-1547103297864-abb466b989.webp",[19,53,54],{},[39,55],{"alt":56,"src":57},"1547103359158","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F10\u002F05\u002Fstage5-1547103359158-05f932a647.webp",[19,59,60],{},"模板的特点：",[62,63,64,68],"ul",{},[65,66,67],"li",{},"模板不可以直接使用，它只是一个框架",[65,69,70],{},"模板的通用并不是万能的",[15,72,73],{"id":73},"函数模板",[62,75,76,79],{},[65,77,78],{},"C++另一种编程思想称为 ==泛型编程== ，主要利用的技术就是模板",[65,80,81,82,84,85],{},"C++提供两种模板机制:",[23,83,73],{},"和",[23,86,87],{},"类模板",[89,90,91],"h4",{"id":91},"函数模板语法",[19,93,94],{},"函数模板作用：",[19,96,97,98,101],{},"建立一个通用函数，其函数返回值类型和形参类型可以不具体制定，用一个",[23,99,100],{},"虚拟的类型","来代表。",[19,103,104],{},[23,105,106],{},"语法：",[108,109,114],"pre",{"className":110,"code":111,"language":112,"meta":113,"style":113},"language-cpp shiki shiki-themes github-light github-dark","template\u003Ctypename T>\n函数声明或定义\n","cpp","",[115,116,117,140],"code",{"__ignoreMap":113},[118,119,122,126,130,133,137],"span",{"class":120,"line":121},"line",1,[118,123,125],{"class":124},"szBVR","template",[118,127,129],{"class":128},"sVt8B","\u003C",[118,131,132],{"class":124},"typename",[118,134,136],{"class":135},"sScJk"," T",[118,138,139],{"class":128},">\n",[118,141,143],{"class":120,"line":142},2,[118,144,145],{"class":128},"函数声明或定义\n",[19,147,148,151,152,155],{},[23,149,150],{},"运行结果："," 此代码块不含 ",[115,153,154],{},"main"," 函数，是语法、接口或分文件示例，不能独立运行，因此没有终端输出。",[19,157,158],{},[23,159,160],{},"解释：",[19,162,163],{},"template  ---  声明创建模板",[19,165,166],{},"typename  --- 表面其后面的符号是一种数据类型，可以用class代替",[19,168,169],{},"T    ---   通用的数据类型，名称可以替换，通常为大写字母",[19,171,172],{},[23,173,174],{},"示例：",[108,176,178],{"className":110,"code":177,"language":112,"meta":113,"style":113},"\n\u002F\u002F交换整型函数\nvoid swapInt(int& a, int& b) {\n    int temp = a;\n    a = b;\n    b = temp;\n}\n\n\u002F\u002F交换浮点型函数\nvoid swapDouble(double& a, double& b) {\n    double temp = a;\n    a = b;\n    b = temp;\n}\n\n\u002F\u002F利用模板提供通用的交换函数\ntemplate\u003Ctypename T>\nvoid mySwap(T& a, T& b)\n{\n    T temp = a;\n    a = b;\n    b = temp;\n}\n\nvoid test01()\n{\n    int a = 10;\n    int b = 20;\n    \n    \u002F\u002FswapInt(a, b);\n\n    \u002F\u002F利用模板实现交换\n    \u002F\u002F1、自动类型推导\n    mySwap(a, b);\n\n    \u002F\u002F2、显示指定类型\n    mySwap\u003Cint>(a, b);\n\n    cout \u003C\u003C \"a = \" \u003C\u003C a \u003C\u003C endl;\n    cout \u003C\u003C \"b = \" \u003C\u003C b \u003C\u003C endl;\n\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,179,180,186,192,222,237,248,259,265,270,276,299,311,320,329,334,339,345,358,387,393,403,412,421,426,431,442,447,464,479,485,491,496,502,508,517,522,528,541,546,569,587,592,597,602,613,618,627,632,637,648],{"__ignoreMap":113},[118,181,182],{"class":120,"line":121},[118,183,185],{"emptyLinePlaceholder":184},true,"\n",[118,187,188],{"class":120,"line":142},[118,189,191],{"class":190},"sJ8bj","\u002F\u002F交换整型函数\n",[118,193,195,198,201,204,207,211,214,216,219],{"class":120,"line":194},3,[118,196,197],{"class":124},"void",[118,199,200],{"class":135}," swapInt",[118,202,203],{"class":128},"(",[118,205,206],{"class":124},"int&",[118,208,210],{"class":209},"s4XuR"," a",[118,212,213],{"class":128},", ",[118,215,206],{"class":124},[118,217,218],{"class":209}," b",[118,220,221],{"class":128},") {\n",[118,223,225,228,231,234],{"class":120,"line":224},4,[118,226,227],{"class":124},"    int",[118,229,230],{"class":128}," temp ",[118,232,233],{"class":124},"=",[118,235,236],{"class":128}," a;\n",[118,238,240,243,245],{"class":120,"line":239},5,[118,241,242],{"class":128},"    a ",[118,244,233],{"class":124},[118,246,247],{"class":128}," b;\n",[118,249,251,254,256],{"class":120,"line":250},6,[118,252,253],{"class":128},"    b ",[118,255,233],{"class":124},[118,257,258],{"class":128}," temp;\n",[118,260,262],{"class":120,"line":261},7,[118,263,264],{"class":128},"}\n",[118,266,268],{"class":120,"line":267},8,[118,269,185],{"emptyLinePlaceholder":184},[118,271,273],{"class":120,"line":272},9,[118,274,275],{"class":190},"\u002F\u002F交换浮点型函数\n",[118,277,279,281,284,286,289,291,293,295,297],{"class":120,"line":278},10,[118,280,197],{"class":124},[118,282,283],{"class":135}," swapDouble",[118,285,203],{"class":128},[118,287,288],{"class":124},"double&",[118,290,210],{"class":209},[118,292,213],{"class":128},[118,294,288],{"class":124},[118,296,218],{"class":209},[118,298,221],{"class":128},[118,300,302,305,307,309],{"class":120,"line":301},11,[118,303,304],{"class":124},"    double",[118,306,230],{"class":128},[118,308,233],{"class":124},[118,310,236],{"class":128},[118,312,314,316,318],{"class":120,"line":313},12,[118,315,242],{"class":128},[118,317,233],{"class":124},[118,319,247],{"class":128},[118,321,323,325,327],{"class":120,"line":322},13,[118,324,253],{"class":128},[118,326,233],{"class":124},[118,328,258],{"class":128},[118,330,332],{"class":120,"line":331},14,[118,333,264],{"class":128},[118,335,337],{"class":120,"line":336},15,[118,338,185],{"emptyLinePlaceholder":184},[118,340,342],{"class":120,"line":341},16,[118,343,344],{"class":190},"\u002F\u002F利用模板提供通用的交换函数\n",[118,346,348,350,352,354,356],{"class":120,"line":347},17,[118,349,125],{"class":124},[118,351,129],{"class":128},[118,353,132],{"class":124},[118,355,136],{"class":135},[118,357,139],{"class":128},[118,359,361,363,366,368,371,374,376,378,380,382,384],{"class":120,"line":360},18,[118,362,197],{"class":124},[118,364,365],{"class":135}," mySwap",[118,367,203],{"class":128},[118,369,370],{"class":135},"T",[118,372,373],{"class":124},"&",[118,375,210],{"class":209},[118,377,213],{"class":128},[118,379,370],{"class":135},[118,381,373],{"class":124},[118,383,218],{"class":209},[118,385,386],{"class":128},")\n",[118,388,390],{"class":120,"line":389},19,[118,391,392],{"class":128},"{\n",[118,394,396,399,401],{"class":120,"line":395},20,[118,397,398],{"class":128},"    T temp ",[118,400,233],{"class":124},[118,402,236],{"class":128},[118,404,406,408,410],{"class":120,"line":405},21,[118,407,242],{"class":128},[118,409,233],{"class":124},[118,411,247],{"class":128},[118,413,415,417,419],{"class":120,"line":414},22,[118,416,253],{"class":128},[118,418,233],{"class":124},[118,420,258],{"class":128},[118,422,424],{"class":120,"line":423},23,[118,425,264],{"class":128},[118,427,429],{"class":120,"line":428},24,[118,430,185],{"emptyLinePlaceholder":184},[118,432,434,436,439],{"class":120,"line":433},25,[118,435,197],{"class":124},[118,437,438],{"class":135}," test01",[118,440,441],{"class":128},"()\n",[118,443,445],{"class":120,"line":444},26,[118,446,392],{"class":128},[118,448,450,452,455,457,461],{"class":120,"line":449},27,[118,451,227],{"class":124},[118,453,454],{"class":128}," a ",[118,456,233],{"class":124},[118,458,460],{"class":459},"sj4cs"," 10",[118,462,463],{"class":128},";\n",[118,465,467,469,472,474,477],{"class":120,"line":466},28,[118,468,227],{"class":124},[118,470,471],{"class":128}," b ",[118,473,233],{"class":124},[118,475,476],{"class":459}," 20",[118,478,463],{"class":128},[118,480,482],{"class":120,"line":481},29,[118,483,484],{"class":128},"    \n",[118,486,488],{"class":120,"line":487},30,[118,489,490],{"class":190},"    \u002F\u002FswapInt(a, b);\n",[118,492,494],{"class":120,"line":493},31,[118,495,185],{"emptyLinePlaceholder":184},[118,497,499],{"class":120,"line":498},32,[118,500,501],{"class":190},"    \u002F\u002F利用模板实现交换\n",[118,503,505],{"class":120,"line":504},33,[118,506,507],{"class":190},"    \u002F\u002F1、自动类型推导\n",[118,509,511,514],{"class":120,"line":510},34,[118,512,513],{"class":135},"    mySwap",[118,515,516],{"class":128},"(a, b);\n",[118,518,520],{"class":120,"line":519},35,[118,521,185],{"emptyLinePlaceholder":184},[118,523,525],{"class":120,"line":524},36,[118,526,527],{"class":190},"    \u002F\u002F2、显示指定类型\n",[118,529,531,533,535,538],{"class":120,"line":530},37,[118,532,513],{"class":135},[118,534,129],{"class":128},[118,536,537],{"class":124},"int",[118,539,540],{"class":128},">(a, b);\n",[118,542,544],{"class":120,"line":543},38,[118,545,185],{"emptyLinePlaceholder":184},[118,547,549,552,555,559,562,564,566],{"class":120,"line":548},39,[118,550,551],{"class":128},"    cout ",[118,553,554],{"class":124},"\u003C\u003C",[118,556,558],{"class":557},"sZZnC"," \"a = \"",[118,560,561],{"class":124}," \u003C\u003C",[118,563,454],{"class":128},[118,565,554],{"class":124},[118,567,568],{"class":128}," endl;\n",[118,570,572,574,576,579,581,583,585],{"class":120,"line":571},40,[118,573,551],{"class":128},[118,575,554],{"class":124},[118,577,578],{"class":557}," \"b = \"",[118,580,561],{"class":124},[118,582,471],{"class":128},[118,584,554],{"class":124},[118,586,568],{"class":128},[118,588,590],{"class":120,"line":589},41,[118,591,185],{"emptyLinePlaceholder":184},[118,593,595],{"class":120,"line":594},42,[118,596,264],{"class":128},[118,598,600],{"class":120,"line":599},43,[118,601,185],{"emptyLinePlaceholder":184},[118,603,605,607,610],{"class":120,"line":604},44,[118,606,537],{"class":124},[118,608,609],{"class":135}," main",[118,611,612],{"class":128},"() {\n",[118,614,616],{"class":120,"line":615},45,[118,617,185],{"emptyLinePlaceholder":184},[118,619,621,624],{"class":120,"line":620},46,[118,622,623],{"class":135},"    test01",[118,625,626],{"class":128},"();\n",[118,628,630],{"class":120,"line":629},47,[118,631,185],{"emptyLinePlaceholder":184},[118,633,635],{"class":120,"line":634},48,[118,636,185],{"emptyLinePlaceholder":184},[118,638,640,643,646],{"class":120,"line":639},49,[118,641,642],{"class":124},"    return",[118,644,645],{"class":459}," 0",[118,647,463],{"class":128},[118,649,651],{"class":120,"line":650},50,[118,652,264],{"class":128},[19,654,655],{},[23,656,150],{},[108,658,663],{"className":659,"code":661,"language":662,"meta":113},[660],"language-text","a = 10\nb = 20\n","text",[115,664,661],{"__ignoreMap":113},[19,666,667],{},"总结：",[62,669,670,673,676],{},[65,671,672],{},"函数模板利用关键字 template",[65,674,675],{},"使用函数模板有两种方式：自动类型推导、显示指定类型",[65,677,678],{},"模板的目的是为了提高复用性，将类型参数化",[89,680,681],{"id":681},"函数模板注意事项",[19,683,684],{},"注意事项：",[62,686,687,690],{},[65,688,689],{},"自动类型推导，必须推导出一致的数据类型T,才可以使用",[65,691,692],{},"模板必须要确定出T的数据类型，才可以使用",[19,694,695],{},[23,696,174],{},[108,698,700],{"className":110,"code":699,"language":112,"meta":113,"style":113},"\u002F\u002F利用模板提供通用的交换函数\ntemplate\u003Cclass T>\nvoid mySwap(T& a, T& b)\n{\n    T temp = a;\n    a = b;\n    b = temp;\n}\n\n\u002F\u002F 1、自动类型推导，必须推导出一致的数据类型T,才可以使用\nvoid test01()\n{\n    int a = 10;\n    int b = 20;\n    char c = 'c';\n\n    mySwap(a, b); \u002F\u002F 正确，可以推导出一致的T\n    \u002F\u002FmySwap(a, c); \u002F\u002F 错误，推导不出一致的T类型\n}\n\n\u002F\u002F 2、模板必须要确定出T的数据类型，才可以使用\ntemplate\u003Cclass T>\nvoid func()\n{\n    cout \u003C\u003C \"func 调用\" \u003C\u003C endl;\n}\n\nvoid test02()\n{\n    \u002F\u002Ffunc(); \u002F\u002F错误，模板不能独立使用，必须确定出T的类型\n    func\u003Cint>(); \u002F\u002F利用显示指定类型的方式，给T一个类型，才可以使用该模板\n}\n\nint main() {\n\n    test01();\n    test02();\n\n\n    return 0;\n}\n",[115,701,702,706,719,743,747,755,763,771,775,779,784,792,796,808,820,835,839,849,857,861,865,870,882,891,895,908,912,916,925,929,937,952,956,960,968,972,978,985,989,993,1001],{"__ignoreMap":113},[118,703,704],{"class":120,"line":121},[118,705,344],{"class":190},[118,707,708,710,712,715,717],{"class":120,"line":142},[118,709,125],{"class":124},[118,711,129],{"class":128},[118,713,714],{"class":124},"class",[118,716,136],{"class":135},[118,718,139],{"class":128},[118,720,721,723,725,727,729,731,733,735,737,739,741],{"class":120,"line":194},[118,722,197],{"class":124},[118,724,365],{"class":135},[118,726,203],{"class":128},[118,728,370],{"class":135},[118,730,373],{"class":124},[118,732,210],{"class":209},[118,734,213],{"class":128},[118,736,370],{"class":135},[118,738,373],{"class":124},[118,740,218],{"class":209},[118,742,386],{"class":128},[118,744,745],{"class":120,"line":224},[118,746,392],{"class":128},[118,748,749,751,753],{"class":120,"line":239},[118,750,398],{"class":128},[118,752,233],{"class":124},[118,754,236],{"class":128},[118,756,757,759,761],{"class":120,"line":250},[118,758,242],{"class":128},[118,760,233],{"class":124},[118,762,247],{"class":128},[118,764,765,767,769],{"class":120,"line":261},[118,766,253],{"class":128},[118,768,233],{"class":124},[118,770,258],{"class":128},[118,772,773],{"class":120,"line":267},[118,774,264],{"class":128},[118,776,777],{"class":120,"line":272},[118,778,185],{"emptyLinePlaceholder":184},[118,780,781],{"class":120,"line":278},[118,782,783],{"class":190},"\u002F\u002F 1、自动类型推导，必须推导出一致的数据类型T,才可以使用\n",[118,785,786,788,790],{"class":120,"line":301},[118,787,197],{"class":124},[118,789,438],{"class":135},[118,791,441],{"class":128},[118,793,794],{"class":120,"line":313},[118,795,392],{"class":128},[118,797,798,800,802,804,806],{"class":120,"line":322},[118,799,227],{"class":124},[118,801,454],{"class":128},[118,803,233],{"class":124},[118,805,460],{"class":459},[118,807,463],{"class":128},[118,809,810,812,814,816,818],{"class":120,"line":331},[118,811,227],{"class":124},[118,813,471],{"class":128},[118,815,233],{"class":124},[118,817,476],{"class":459},[118,819,463],{"class":128},[118,821,822,825,828,830,833],{"class":120,"line":336},[118,823,824],{"class":124},"    char",[118,826,827],{"class":128}," c ",[118,829,233],{"class":124},[118,831,832],{"class":557}," 'c'",[118,834,463],{"class":128},[118,836,837],{"class":120,"line":341},[118,838,185],{"emptyLinePlaceholder":184},[118,840,841,843,846],{"class":120,"line":347},[118,842,513],{"class":135},[118,844,845],{"class":128},"(a, b);",[118,847,848],{"class":190}," \u002F\u002F 正确，可以推导出一致的T\n",[118,850,851,854],{"class":120,"line":360},[118,852,853],{"class":190},"    \u002F\u002FmySwap(a, c);",[118,855,856],{"class":190}," \u002F\u002F 错误，推导不出一致的T类型\n",[118,858,859],{"class":120,"line":389},[118,860,264],{"class":128},[118,862,863],{"class":120,"line":395},[118,864,185],{"emptyLinePlaceholder":184},[118,866,867],{"class":120,"line":405},[118,868,869],{"class":190},"\u002F\u002F 2、模板必须要确定出T的数据类型，才可以使用\n",[118,871,872,874,876,878,880],{"class":120,"line":414},[118,873,125],{"class":124},[118,875,129],{"class":128},[118,877,714],{"class":124},[118,879,136],{"class":135},[118,881,139],{"class":128},[118,883,884,886,889],{"class":120,"line":423},[118,885,197],{"class":124},[118,887,888],{"class":135}," func",[118,890,441],{"class":128},[118,892,893],{"class":120,"line":428},[118,894,392],{"class":128},[118,896,897,899,901,904,906],{"class":120,"line":433},[118,898,551],{"class":128},[118,900,554],{"class":124},[118,902,903],{"class":557}," \"func 调用\"",[118,905,561],{"class":124},[118,907,568],{"class":128},[118,909,910],{"class":120,"line":444},[118,911,264],{"class":128},[118,913,914],{"class":120,"line":449},[118,915,185],{"emptyLinePlaceholder":184},[118,917,918,920,923],{"class":120,"line":466},[118,919,197],{"class":124},[118,921,922],{"class":135}," test02",[118,924,441],{"class":128},[118,926,927],{"class":120,"line":481},[118,928,392],{"class":128},[118,930,931,934],{"class":120,"line":487},[118,932,933],{"class":190},"    \u002F\u002Ffunc();",[118,935,936],{"class":190}," \u002F\u002F错误，模板不能独立使用，必须确定出T的类型\n",[118,938,939,942,944,946,949],{"class":120,"line":493},[118,940,941],{"class":135},"    func",[118,943,129],{"class":128},[118,945,537],{"class":124},[118,947,948],{"class":128},">();",[118,950,951],{"class":190}," \u002F\u002F利用显示指定类型的方式，给T一个类型，才可以使用该模板\n",[118,953,954],{"class":120,"line":498},[118,955,264],{"class":128},[118,957,958],{"class":120,"line":504},[118,959,185],{"emptyLinePlaceholder":184},[118,961,962,964,966],{"class":120,"line":510},[118,963,537],{"class":124},[118,965,609],{"class":135},[118,967,612],{"class":128},[118,969,970],{"class":120,"line":519},[118,971,185],{"emptyLinePlaceholder":184},[118,973,974,976],{"class":120,"line":524},[118,975,623],{"class":135},[118,977,626],{"class":128},[118,979,980,983],{"class":120,"line":530},[118,981,982],{"class":135},"    test02",[118,984,626],{"class":128},[118,986,987],{"class":120,"line":543},[118,988,185],{"emptyLinePlaceholder":184},[118,990,991],{"class":120,"line":548},[118,992,185],{"emptyLinePlaceholder":184},[118,994,995,997,999],{"class":120,"line":571},[118,996,642],{"class":124},[118,998,645],{"class":459},[118,1000,463],{"class":128},[118,1002,1003],{"class":120,"line":589},[118,1004,264],{"class":128},[19,1006,1007],{},[23,1008,150],{},[108,1010,1013],{"className":1011,"code":1012,"language":662,"meta":113},[660],"func 调用\n",[115,1014,1012],{"__ignoreMap":113},[19,1016,667],{},[62,1018,1019],{},[65,1020,1021],{},"使用模板时必须确定出通用数据类型T，并且能够推导出一致的类型",[89,1023,1024],{"id":1024},"函数模板案例",[19,1026,1027],{},"案例描述：",[62,1029,1030,1037,1043],{},[65,1031,1032,1033,1036],{},"利用函数模板封装一个排序的函数，可以对",[23,1034,1035],{},"不同数据类型数组","进行排序",[65,1038,1039,1040],{},"排序规则从大到小，排序算法为",[23,1041,1042],{},"选择排序",[65,1044,1045,1046,84,1049,1052],{},"分别利用",[23,1047,1048],{},"char数组",[23,1050,1051],{},"int数组","进行测试",[19,1054,174],{},[108,1056,1058],{"className":110,"code":1057,"language":112,"meta":113,"style":113},"\u002F\u002F交换的函数模板\ntemplate\u003Ctypename T>\nvoid mySwap(T &a, T&b)\n{\n    T temp = a;\n    a = b;\n    b = temp;\n}\n\ntemplate\u003Cclass T> \u002F\u002F 也可以替换成typename\n\u002F\u002F利用选择排序，进行对数组从大到小的排序\nvoid mySort(T arr[], int len)\n{\n    for (int i = 0; i \u003C len; i++)\n    {\n        int max = i; \u002F\u002F最大数的下标\n        for (int j = i + 1; j \u003C len; j++)\n        {\n            if (arr[max] \u003C arr[j])\n            {\n                max = j;\n            }\n        }\n        if (max != i) \u002F\u002F如果最大数的下标不是i，交换两者\n        {\n            mySwap(arr[max], arr[i]);\n        }\n    }\n}\ntemplate\u003Ctypename T>\nvoid printArray(T arr[], int len) {\n\n    for (int i = 0; i \u003C len; i++) {\n        cout \u003C\u003C arr[i] \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n}\nvoid test01()\n{\n    \u002F\u002F测试char数组\n    char charArr[] = \"bdcfeagh\";\n    int num = sizeof(charArr) \u002F sizeof(char);\n    mySort(charArr, num);\n    printArray(charArr, num);\n}\n\nvoid test02()\n{\n    \u002F\u002F测试int数组\n    int intArr[] = { 7, 5, 8, 1, 3, 9, 2, 4, 6 };\n    int num = sizeof(intArr) \u002F sizeof(int);\n    mySort(intArr, num);\n    printArray(intArr, num);\n}\n\nint main() {\n\n    test01();\n    test02();\n\n\n    return 0;\n}\n",[115,1059,1060,1065,1077,1104,1108,1116,1124,1132,1136,1140,1156,1161,1185,1189,1219,1224,1240,1274,1279,1292,1297,1307,1312,1317,1334,1338,1346,1350,1355,1359,1371,1392,1396,1420,1437,1441,1449,1453,1461,1465,1470,1484,1512,1520,1527,1531,1535,1543,1547,1552,1610,1634,1642,1649,1654,1659,1668,1673,1680,1687,1692,1697,1706],{"__ignoreMap":113},[118,1061,1062],{"class":120,"line":121},[118,1063,1064],{"class":190},"\u002F\u002F交换的函数模板\n",[118,1066,1067,1069,1071,1073,1075],{"class":120,"line":142},[118,1068,125],{"class":124},[118,1070,129],{"class":128},[118,1072,132],{"class":124},[118,1074,136],{"class":135},[118,1076,139],{"class":128},[118,1078,1079,1081,1083,1085,1087,1090,1093,1095,1097,1099,1102],{"class":120,"line":194},[118,1080,197],{"class":124},[118,1082,365],{"class":135},[118,1084,203],{"class":128},[118,1086,370],{"class":135},[118,1088,1089],{"class":124}," &",[118,1091,1092],{"class":209},"a",[118,1094,213],{"class":128},[118,1096,370],{"class":135},[118,1098,373],{"class":124},[118,1100,1101],{"class":209},"b",[118,1103,386],{"class":128},[118,1105,1106],{"class":120,"line":224},[118,1107,392],{"class":128},[118,1109,1110,1112,1114],{"class":120,"line":239},[118,1111,398],{"class":128},[118,1113,233],{"class":124},[118,1115,236],{"class":128},[118,1117,1118,1120,1122],{"class":120,"line":250},[118,1119,242],{"class":128},[118,1121,233],{"class":124},[118,1123,247],{"class":128},[118,1125,1126,1128,1130],{"class":120,"line":261},[118,1127,253],{"class":128},[118,1129,233],{"class":124},[118,1131,258],{"class":128},[118,1133,1134],{"class":120,"line":267},[118,1135,264],{"class":128},[118,1137,1138],{"class":120,"line":272},[118,1139,185],{"emptyLinePlaceholder":184},[118,1141,1142,1144,1146,1148,1150,1153],{"class":120,"line":278},[118,1143,125],{"class":124},[118,1145,129],{"class":128},[118,1147,714],{"class":124},[118,1149,136],{"class":135},[118,1151,1152],{"class":128},">",[118,1154,1155],{"class":190}," \u002F\u002F 也可以替换成typename\n",[118,1157,1158],{"class":120,"line":301},[118,1159,1160],{"class":190},"\u002F\u002F利用选择排序，进行对数组从大到小的排序\n",[118,1162,1163,1165,1168,1170,1172,1175,1178,1180,1183],{"class":120,"line":313},[118,1164,197],{"class":124},[118,1166,1167],{"class":135}," mySort",[118,1169,203],{"class":128},[118,1171,370],{"class":135},[118,1173,1174],{"class":209}," arr",[118,1176,1177],{"class":128},"[], ",[118,1179,537],{"class":124},[118,1181,1182],{"class":209}," len",[118,1184,386],{"class":128},[118,1186,1187],{"class":120,"line":322},[118,1188,392],{"class":128},[118,1190,1191,1194,1197,1199,1202,1204,1206,1209,1211,1214,1217],{"class":120,"line":331},[118,1192,1193],{"class":124},"    for",[118,1195,1196],{"class":128}," (",[118,1198,537],{"class":124},[118,1200,1201],{"class":128}," i ",[118,1203,233],{"class":124},[118,1205,645],{"class":459},[118,1207,1208],{"class":128},"; i ",[118,1210,129],{"class":124},[118,1212,1213],{"class":128}," len; i",[118,1215,1216],{"class":124},"++",[118,1218,386],{"class":128},[118,1220,1221],{"class":120,"line":336},[118,1222,1223],{"class":128},"    {\n",[118,1225,1226,1229,1232,1234,1237],{"class":120,"line":341},[118,1227,1228],{"class":124},"        int",[118,1230,1231],{"class":128}," max ",[118,1233,233],{"class":124},[118,1235,1236],{"class":128}," i;",[118,1238,1239],{"class":190}," \u002F\u002F最大数的下标\n",[118,1241,1242,1245,1247,1249,1252,1254,1256,1259,1262,1265,1267,1270,1272],{"class":120,"line":347},[118,1243,1244],{"class":124},"        for",[118,1246,1196],{"class":128},[118,1248,537],{"class":124},[118,1250,1251],{"class":128}," j ",[118,1253,233],{"class":124},[118,1255,1201],{"class":128},[118,1257,1258],{"class":124},"+",[118,1260,1261],{"class":459}," 1",[118,1263,1264],{"class":128},"; j ",[118,1266,129],{"class":124},[118,1268,1269],{"class":128}," len; j",[118,1271,1216],{"class":124},[118,1273,386],{"class":128},[118,1275,1276],{"class":120,"line":360},[118,1277,1278],{"class":128},"        {\n",[118,1280,1281,1284,1287,1289],{"class":120,"line":389},[118,1282,1283],{"class":124},"            if",[118,1285,1286],{"class":128}," (arr[max] ",[118,1288,129],{"class":124},[118,1290,1291],{"class":128}," arr[j])\n",[118,1293,1294],{"class":120,"line":395},[118,1295,1296],{"class":128},"            {\n",[118,1298,1299,1302,1304],{"class":120,"line":405},[118,1300,1301],{"class":128},"                max ",[118,1303,233],{"class":124},[118,1305,1306],{"class":128}," j;\n",[118,1308,1309],{"class":120,"line":414},[118,1310,1311],{"class":128},"            }\n",[118,1313,1314],{"class":120,"line":423},[118,1315,1316],{"class":128},"        }\n",[118,1318,1319,1322,1325,1328,1331],{"class":120,"line":428},[118,1320,1321],{"class":124},"        if",[118,1323,1324],{"class":128}," (max ",[118,1326,1327],{"class":124},"!=",[118,1329,1330],{"class":128}," i)",[118,1332,1333],{"class":190}," \u002F\u002F如果最大数的下标不是i，交换两者\n",[118,1335,1336],{"class":120,"line":433},[118,1337,1278],{"class":128},[118,1339,1340,1343],{"class":120,"line":444},[118,1341,1342],{"class":135},"            mySwap",[118,1344,1345],{"class":128},"(arr[max], arr[i]);\n",[118,1347,1348],{"class":120,"line":449},[118,1349,1316],{"class":128},[118,1351,1352],{"class":120,"line":466},[118,1353,1354],{"class":128},"    }\n",[118,1356,1357],{"class":120,"line":481},[118,1358,264],{"class":128},[118,1360,1361,1363,1365,1367,1369],{"class":120,"line":487},[118,1362,125],{"class":124},[118,1364,129],{"class":128},[118,1366,132],{"class":124},[118,1368,136],{"class":135},[118,1370,139],{"class":128},[118,1372,1373,1375,1378,1380,1382,1384,1386,1388,1390],{"class":120,"line":493},[118,1374,197],{"class":124},[118,1376,1377],{"class":135}," printArray",[118,1379,203],{"class":128},[118,1381,370],{"class":135},[118,1383,1174],{"class":209},[118,1385,1177],{"class":128},[118,1387,537],{"class":124},[118,1389,1182],{"class":209},[118,1391,221],{"class":128},[118,1393,1394],{"class":120,"line":498},[118,1395,185],{"emptyLinePlaceholder":184},[118,1397,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418],{"class":120,"line":504},[118,1399,1193],{"class":124},[118,1401,1196],{"class":128},[118,1403,537],{"class":124},[118,1405,1201],{"class":128},[118,1407,233],{"class":124},[118,1409,645],{"class":459},[118,1411,1208],{"class":128},[118,1413,129],{"class":124},[118,1415,1213],{"class":128},[118,1417,1216],{"class":124},[118,1419,221],{"class":128},[118,1421,1422,1425,1427,1430,1432,1435],{"class":120,"line":510},[118,1423,1424],{"class":128},"        cout ",[118,1426,554],{"class":124},[118,1428,1429],{"class":128}," arr[i] ",[118,1431,554],{"class":124},[118,1433,1434],{"class":557}," \" \"",[118,1436,463],{"class":128},[118,1438,1439],{"class":120,"line":519},[118,1440,1354],{"class":128},[118,1442,1443,1445,1447],{"class":120,"line":524},[118,1444,551],{"class":128},[118,1446,554],{"class":124},[118,1448,568],{"class":128},[118,1450,1451],{"class":120,"line":530},[118,1452,264],{"class":128},[118,1454,1455,1457,1459],{"class":120,"line":543},[118,1456,197],{"class":124},[118,1458,438],{"class":135},[118,1460,441],{"class":128},[118,1462,1463],{"class":120,"line":548},[118,1464,392],{"class":128},[118,1466,1467],{"class":120,"line":571},[118,1468,1469],{"class":190},"    \u002F\u002F测试char数组\n",[118,1471,1472,1474,1477,1479,1482],{"class":120,"line":589},[118,1473,824],{"class":124},[118,1475,1476],{"class":128}," charArr[] ",[118,1478,233],{"class":124},[118,1480,1481],{"class":557}," \"bdcfeagh\"",[118,1483,463],{"class":128},[118,1485,1486,1488,1491,1493,1496,1499,1502,1504,1506,1509],{"class":120,"line":594},[118,1487,227],{"class":124},[118,1489,1490],{"class":128}," num ",[118,1492,233],{"class":124},[118,1494,1495],{"class":124}," sizeof",[118,1497,1498],{"class":128},"(charArr) ",[118,1500,1501],{"class":124},"\u002F",[118,1503,1495],{"class":124},[118,1505,203],{"class":128},[118,1507,1508],{"class":124},"char",[118,1510,1511],{"class":128},");\n",[118,1513,1514,1517],{"class":120,"line":599},[118,1515,1516],{"class":135},"    mySort",[118,1518,1519],{"class":128},"(charArr, num);\n",[118,1521,1522,1525],{"class":120,"line":604},[118,1523,1524],{"class":135},"    printArray",[118,1526,1519],{"class":128},[118,1528,1529],{"class":120,"line":615},[118,1530,264],{"class":128},[118,1532,1533],{"class":120,"line":620},[118,1534,185],{"emptyLinePlaceholder":184},[118,1536,1537,1539,1541],{"class":120,"line":629},[118,1538,197],{"class":124},[118,1540,922],{"class":135},[118,1542,441],{"class":128},[118,1544,1545],{"class":120,"line":634},[118,1546,392],{"class":128},[118,1548,1549],{"class":120,"line":639},[118,1550,1551],{"class":190},"    \u002F\u002F测试int数组\n",[118,1553,1554,1556,1559,1561,1564,1567,1569,1572,1574,1577,1579,1582,1584,1587,1589,1592,1594,1597,1599,1602,1604,1607],{"class":120,"line":650},[118,1555,227],{"class":124},[118,1557,1558],{"class":128}," intArr[] ",[118,1560,233],{"class":124},[118,1562,1563],{"class":128}," { ",[118,1565,1566],{"class":459},"7",[118,1568,213],{"class":128},[118,1570,1571],{"class":459},"5",[118,1573,213],{"class":128},[118,1575,1576],{"class":459},"8",[118,1578,213],{"class":128},[118,1580,1581],{"class":459},"1",[118,1583,213],{"class":128},[118,1585,1586],{"class":459},"3",[118,1588,213],{"class":128},[118,1590,1591],{"class":459},"9",[118,1593,213],{"class":128},[118,1595,1596],{"class":459},"2",[118,1598,213],{"class":128},[118,1600,1601],{"class":459},"4",[118,1603,213],{"class":128},[118,1605,1606],{"class":459},"6",[118,1608,1609],{"class":128}," };\n",[118,1611,1613,1615,1617,1619,1621,1624,1626,1628,1630,1632],{"class":120,"line":1612},51,[118,1614,227],{"class":124},[118,1616,1490],{"class":128},[118,1618,233],{"class":124},[118,1620,1495],{"class":124},[118,1622,1623],{"class":128},"(intArr) ",[118,1625,1501],{"class":124},[118,1627,1495],{"class":124},[118,1629,203],{"class":128},[118,1631,537],{"class":124},[118,1633,1511],{"class":128},[118,1635,1637,1639],{"class":120,"line":1636},52,[118,1638,1516],{"class":135},[118,1640,1641],{"class":128},"(intArr, num);\n",[118,1643,1645,1647],{"class":120,"line":1644},53,[118,1646,1524],{"class":135},[118,1648,1641],{"class":128},[118,1650,1652],{"class":120,"line":1651},54,[118,1653,264],{"class":128},[118,1655,1657],{"class":120,"line":1656},55,[118,1658,185],{"emptyLinePlaceholder":184},[118,1660,1662,1664,1666],{"class":120,"line":1661},56,[118,1663,537],{"class":124},[118,1665,609],{"class":135},[118,1667,612],{"class":128},[118,1669,1671],{"class":120,"line":1670},57,[118,1672,185],{"emptyLinePlaceholder":184},[118,1674,1676,1678],{"class":120,"line":1675},58,[118,1677,623],{"class":135},[118,1679,626],{"class":128},[118,1681,1683,1685],{"class":120,"line":1682},59,[118,1684,982],{"class":135},[118,1686,626],{"class":128},[118,1688,1690],{"class":120,"line":1689},60,[118,1691,185],{"emptyLinePlaceholder":184},[118,1693,1695],{"class":120,"line":1694},61,[118,1696,185],{"emptyLinePlaceholder":184},[118,1698,1700,1702,1704],{"class":120,"line":1699},62,[118,1701,642],{"class":124},[118,1703,645],{"class":459},[118,1705,463],{"class":128},[118,1707,1709],{"class":120,"line":1708},63,[118,1710,264],{"class":128},[19,1712,1713],{},[23,1714,1715],{},"运行结果（类型大小或类型名可能随编译器和平台变化）：",[108,1717,1720],{"className":1718,"code":1719,"language":662,"meta":113},[660],"h g f e d c b a \\x00\n9 8 7 6 5 4 3 2 1\n",[115,1721,1719],{"__ignoreMap":113},[19,1723,1724],{},"总结：模板可以提高代码复用，需要熟练掌握",[89,1726,1727],{"id":1727},"普通函数与函数模板的区别",[19,1729,1730],{},[23,1731,1732],{},"普通函数与函数模板区别：",[62,1734,1735,1738,1741],{},[65,1736,1737],{},"普通函数调用时可以发生自动类型转换（隐式类型转换）",[65,1739,1740],{},"函数模板调用时，如果利用自动类型推导，不会发生隐式类型转换",[65,1742,1743],{},"如果利用显示指定类型的方式，可以发生隐式类型转换",[19,1745,1746],{},[23,1747,174],{},[108,1749,1751],{"className":110,"code":1750,"language":112,"meta":113,"style":113},"\u002F\u002F普通函数\nint myAdd01(int a, int b)\n{\n    return a + b;\n}\n\n\u002F\u002F函数模板\ntemplate\u003Cclass T>\nT myAdd02(T a, T b)  \n{\n    return a + b;\n}\n\n\u002F\u002F使用函数模板时，如果用自动类型推导，不会发生自动类型转换,即隐式类型转换\nvoid test01()\n{\n    int a = 10;\n    int b = 20;\n    char c = 'c';\n    \n    cout \u003C\u003C myAdd01(a, c) \u003C\u003C endl; \u002F\u002F正确，将char类型的'c'隐式转换为int类型  'c' 对应 ASCII码 99\n\n    \u002F\u002FmyAdd02(a, c); \u002F\u002F 报错，使用自动类型推导时，不会发生隐式类型转换\n\n    myAdd02\u003Cint>(a, c); \u002F\u002F正确，如果用显示指定类型，可以发生隐式类型转换\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,1752,1753,1758,1779,1783,1793,1797,1801,1806,1818,1840,1844,1854,1858,1862,1867,1875,1879,1891,1903,1915,1919,1938,1942,1950,1954,1969,1973,1977,1985,1989,1995,1999,2003,2011],{"__ignoreMap":113},[118,1754,1755],{"class":120,"line":121},[118,1756,1757],{"class":190},"\u002F\u002F普通函数\n",[118,1759,1760,1762,1765,1767,1769,1771,1773,1775,1777],{"class":120,"line":142},[118,1761,537],{"class":124},[118,1763,1764],{"class":135}," myAdd01",[118,1766,203],{"class":128},[118,1768,537],{"class":124},[118,1770,210],{"class":209},[118,1772,213],{"class":128},[118,1774,537],{"class":124},[118,1776,218],{"class":209},[118,1778,386],{"class":128},[118,1780,1781],{"class":120,"line":194},[118,1782,392],{"class":128},[118,1784,1785,1787,1789,1791],{"class":120,"line":224},[118,1786,642],{"class":124},[118,1788,454],{"class":128},[118,1790,1258],{"class":124},[118,1792,247],{"class":128},[118,1794,1795],{"class":120,"line":239},[118,1796,264],{"class":128},[118,1798,1799],{"class":120,"line":250},[118,1800,185],{"emptyLinePlaceholder":184},[118,1802,1803],{"class":120,"line":261},[118,1804,1805],{"class":190},"\u002F\u002F函数模板\n",[118,1807,1808,1810,1812,1814,1816],{"class":120,"line":267},[118,1809,125],{"class":124},[118,1811,129],{"class":128},[118,1813,714],{"class":124},[118,1815,136],{"class":135},[118,1817,139],{"class":128},[118,1819,1820,1822,1825,1827,1829,1831,1833,1835,1837],{"class":120,"line":272},[118,1821,370],{"class":135},[118,1823,1824],{"class":135}," myAdd02",[118,1826,203],{"class":128},[118,1828,370],{"class":135},[118,1830,210],{"class":209},[118,1832,213],{"class":128},[118,1834,370],{"class":135},[118,1836,218],{"class":209},[118,1838,1839],{"class":128},")  \n",[118,1841,1842],{"class":120,"line":278},[118,1843,392],{"class":128},[118,1845,1846,1848,1850,1852],{"class":120,"line":301},[118,1847,642],{"class":124},[118,1849,454],{"class":128},[118,1851,1258],{"class":124},[118,1853,247],{"class":128},[118,1855,1856],{"class":120,"line":313},[118,1857,264],{"class":128},[118,1859,1860],{"class":120,"line":322},[118,1861,185],{"emptyLinePlaceholder":184},[118,1863,1864],{"class":120,"line":331},[118,1865,1866],{"class":190},"\u002F\u002F使用函数模板时，如果用自动类型推导，不会发生自动类型转换,即隐式类型转换\n",[118,1868,1869,1871,1873],{"class":120,"line":336},[118,1870,197],{"class":124},[118,1872,438],{"class":135},[118,1874,441],{"class":128},[118,1876,1877],{"class":120,"line":341},[118,1878,392],{"class":128},[118,1880,1881,1883,1885,1887,1889],{"class":120,"line":347},[118,1882,227],{"class":124},[118,1884,454],{"class":128},[118,1886,233],{"class":124},[118,1888,460],{"class":459},[118,1890,463],{"class":128},[118,1892,1893,1895,1897,1899,1901],{"class":120,"line":360},[118,1894,227],{"class":124},[118,1896,471],{"class":128},[118,1898,233],{"class":124},[118,1900,476],{"class":459},[118,1902,463],{"class":128},[118,1904,1905,1907,1909,1911,1913],{"class":120,"line":389},[118,1906,824],{"class":124},[118,1908,827],{"class":128},[118,1910,233],{"class":124},[118,1912,832],{"class":557},[118,1914,463],{"class":128},[118,1916,1917],{"class":120,"line":395},[118,1918,484],{"class":128},[118,1920,1921,1923,1925,1927,1930,1932,1935],{"class":120,"line":405},[118,1922,551],{"class":128},[118,1924,554],{"class":124},[118,1926,1764],{"class":135},[118,1928,1929],{"class":128},"(a, c) ",[118,1931,554],{"class":124},[118,1933,1934],{"class":128}," endl;",[118,1936,1937],{"class":190}," \u002F\u002F正确，将char类型的'c'隐式转换为int类型  'c' 对应 ASCII码 99\n",[118,1939,1940],{"class":120,"line":414},[118,1941,185],{"emptyLinePlaceholder":184},[118,1943,1944,1947],{"class":120,"line":423},[118,1945,1946],{"class":190},"    \u002F\u002FmyAdd02(a, c);",[118,1948,1949],{"class":190}," \u002F\u002F 报错，使用自动类型推导时，不会发生隐式类型转换\n",[118,1951,1952],{"class":120,"line":428},[118,1953,185],{"emptyLinePlaceholder":184},[118,1955,1956,1959,1961,1963,1966],{"class":120,"line":433},[118,1957,1958],{"class":135},"    myAdd02",[118,1960,129],{"class":128},[118,1962,537],{"class":124},[118,1964,1965],{"class":128},">(a, c);",[118,1967,1968],{"class":190}," \u002F\u002F正确，如果用显示指定类型，可以发生隐式类型转换\n",[118,1970,1971],{"class":120,"line":444},[118,1972,264],{"class":128},[118,1974,1975],{"class":120,"line":449},[118,1976,185],{"emptyLinePlaceholder":184},[118,1978,1979,1981,1983],{"class":120,"line":466},[118,1980,537],{"class":124},[118,1982,609],{"class":135},[118,1984,612],{"class":128},[118,1986,1987],{"class":120,"line":481},[118,1988,185],{"emptyLinePlaceholder":184},[118,1990,1991,1993],{"class":120,"line":487},[118,1992,623],{"class":135},[118,1994,626],{"class":128},[118,1996,1997],{"class":120,"line":493},[118,1998,185],{"emptyLinePlaceholder":184},[118,2000,2001],{"class":120,"line":498},[118,2002,185],{"emptyLinePlaceholder":184},[118,2004,2005,2007,2009],{"class":120,"line":504},[118,2006,642],{"class":124},[118,2008,645],{"class":459},[118,2010,463],{"class":128},[118,2012,2013],{"class":120,"line":510},[118,2014,264],{"class":128},[19,2016,2017],{},[23,2018,150],{},[108,2020,2023],{"className":2021,"code":2022,"language":662,"meta":113},[660],"109\n",[115,2024,2022],{"__ignoreMap":113},[19,2026,2027],{},"总结：建议使用显示指定类型的方式，调用函数模板，因为可以自己确定通用类型T",[89,2029,2030],{"id":2030},"普通函数与函数模板的调用规则",[19,2032,2033],{},"调用规则如下：",[2035,2036,2037,2040,2043,2046],"ol",{},[65,2038,2039],{},"如果函数模板和普通函数都可以实现，优先调用普通函数",[65,2041,2042],{},"可以通过空模板参数列表来强制调用函数模板",[65,2044,2045],{},"函数模板也可以发生重载",[65,2047,2048],{},"如果函数模板可以产生更好的匹配,优先调用函数模板",[19,2050,2051],{},[23,2052,174],{},[108,2054,2056],{"className":110,"code":2055,"language":112,"meta":113,"style":113},"\u002F\u002F普通函数与函数模板调用规则\nvoid myPrint(int a, int b)\n{\n    cout \u003C\u003C \"调用的普通函数\" \u003C\u003C endl;\n}\n\ntemplate\u003Ctypename T>\nvoid myPrint(T a, T b) \n{ \n    cout \u003C\u003C \"调用的模板\" \u003C\u003C endl;\n}\n\ntemplate\u003Ctypename T>\nvoid myPrint(T a, T b, T c) \n{ \n    cout \u003C\u003C \"调用重载的模板\" \u003C\u003C endl; \n}\n\nvoid test01()\n{\n    \u002F\u002F1、如果函数模板和普通函数都可以实现，优先调用普通函数\n    \u002F\u002F 注意 如果告诉编译器  普通函数是有的，但只是声明没有实现，或者不在当前文件内实现，就会报错找不到\n    int a = 10;\n    int b = 20;\n    myPrint(a, b); \u002F\u002F调用普通函数\n\n    \u002F\u002F2、可以通过空模板参数列表来强制调用函数模板\n    myPrint\u003C>(a, b); \u002F\u002F调用函数模板\n\n    \u002F\u002F3、函数模板也可以发生重载\n    int c = 30;\n    myPrint(a, b, c); \u002F\u002F调用重载的函数模板\n\n    \u002F\u002F4、 如果函数模板可以产生更好的匹配,优先调用函数模板\n    char c1 = 'a';\n    char c2 = 'b';\n    myPrint(c1, c2); \u002F\u002F调用函数模板\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,2057,2058,2063,2084,2088,2101,2105,2109,2121,2142,2147,2160,2164,2168,2180,2207,2211,2225,2229,2233,2241,2245,2250,2255,2267,2279,2289,2293,2298,2308,2312,2317,2330,2340,2344,2349,2363,2377,2386,2390,2394,2402,2406,2412,2416,2420,2428],{"__ignoreMap":113},[118,2059,2060],{"class":120,"line":121},[118,2061,2062],{"class":190},"\u002F\u002F普通函数与函数模板调用规则\n",[118,2064,2065,2067,2070,2072,2074,2076,2078,2080,2082],{"class":120,"line":142},[118,2066,197],{"class":124},[118,2068,2069],{"class":135}," myPrint",[118,2071,203],{"class":128},[118,2073,537],{"class":124},[118,2075,210],{"class":209},[118,2077,213],{"class":128},[118,2079,537],{"class":124},[118,2081,218],{"class":209},[118,2083,386],{"class":128},[118,2085,2086],{"class":120,"line":194},[118,2087,392],{"class":128},[118,2089,2090,2092,2094,2097,2099],{"class":120,"line":224},[118,2091,551],{"class":128},[118,2093,554],{"class":124},[118,2095,2096],{"class":557}," \"调用的普通函数\"",[118,2098,561],{"class":124},[118,2100,568],{"class":128},[118,2102,2103],{"class":120,"line":239},[118,2104,264],{"class":128},[118,2106,2107],{"class":120,"line":250},[118,2108,185],{"emptyLinePlaceholder":184},[118,2110,2111,2113,2115,2117,2119],{"class":120,"line":261},[118,2112,125],{"class":124},[118,2114,129],{"class":128},[118,2116,132],{"class":124},[118,2118,136],{"class":135},[118,2120,139],{"class":128},[118,2122,2123,2125,2127,2129,2131,2133,2135,2137,2139],{"class":120,"line":267},[118,2124,197],{"class":124},[118,2126,2069],{"class":135},[118,2128,203],{"class":128},[118,2130,370],{"class":135},[118,2132,210],{"class":209},[118,2134,213],{"class":128},[118,2136,370],{"class":135},[118,2138,218],{"class":209},[118,2140,2141],{"class":128},") \n",[118,2143,2144],{"class":120,"line":272},[118,2145,2146],{"class":128},"{ \n",[118,2148,2149,2151,2153,2156,2158],{"class":120,"line":278},[118,2150,551],{"class":128},[118,2152,554],{"class":124},[118,2154,2155],{"class":557}," \"调用的模板\"",[118,2157,561],{"class":124},[118,2159,568],{"class":128},[118,2161,2162],{"class":120,"line":301},[118,2163,264],{"class":128},[118,2165,2166],{"class":120,"line":313},[118,2167,185],{"emptyLinePlaceholder":184},[118,2169,2170,2172,2174,2176,2178],{"class":120,"line":322},[118,2171,125],{"class":124},[118,2173,129],{"class":128},[118,2175,132],{"class":124},[118,2177,136],{"class":135},[118,2179,139],{"class":128},[118,2181,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2205],{"class":120,"line":331},[118,2183,197],{"class":124},[118,2185,2069],{"class":135},[118,2187,203],{"class":128},[118,2189,370],{"class":135},[118,2191,210],{"class":209},[118,2193,213],{"class":128},[118,2195,370],{"class":135},[118,2197,218],{"class":209},[118,2199,213],{"class":128},[118,2201,370],{"class":135},[118,2203,2204],{"class":209}," c",[118,2206,2141],{"class":128},[118,2208,2209],{"class":120,"line":336},[118,2210,2146],{"class":128},[118,2212,2213,2215,2217,2220,2222],{"class":120,"line":341},[118,2214,551],{"class":128},[118,2216,554],{"class":124},[118,2218,2219],{"class":557}," \"调用重载的模板\"",[118,2221,561],{"class":124},[118,2223,2224],{"class":128}," endl; \n",[118,2226,2227],{"class":120,"line":347},[118,2228,264],{"class":128},[118,2230,2231],{"class":120,"line":360},[118,2232,185],{"emptyLinePlaceholder":184},[118,2234,2235,2237,2239],{"class":120,"line":389},[118,2236,197],{"class":124},[118,2238,438],{"class":135},[118,2240,441],{"class":128},[118,2242,2243],{"class":120,"line":395},[118,2244,392],{"class":128},[118,2246,2247],{"class":120,"line":405},[118,2248,2249],{"class":190},"    \u002F\u002F1、如果函数模板和普通函数都可以实现，优先调用普通函数\n",[118,2251,2252],{"class":120,"line":414},[118,2253,2254],{"class":190},"    \u002F\u002F 注意 如果告诉编译器  普通函数是有的，但只是声明没有实现，或者不在当前文件内实现，就会报错找不到\n",[118,2256,2257,2259,2261,2263,2265],{"class":120,"line":423},[118,2258,227],{"class":124},[118,2260,454],{"class":128},[118,2262,233],{"class":124},[118,2264,460],{"class":459},[118,2266,463],{"class":128},[118,2268,2269,2271,2273,2275,2277],{"class":120,"line":428},[118,2270,227],{"class":124},[118,2272,471],{"class":128},[118,2274,233],{"class":124},[118,2276,476],{"class":459},[118,2278,463],{"class":128},[118,2280,2281,2284,2286],{"class":120,"line":433},[118,2282,2283],{"class":135},"    myPrint",[118,2285,845],{"class":128},[118,2287,2288],{"class":190}," \u002F\u002F调用普通函数\n",[118,2290,2291],{"class":120,"line":444},[118,2292,185],{"emptyLinePlaceholder":184},[118,2294,2295],{"class":120,"line":449},[118,2296,2297],{"class":190},"    \u002F\u002F2、可以通过空模板参数列表来强制调用函数模板\n",[118,2299,2300,2302,2305],{"class":120,"line":466},[118,2301,2283],{"class":135},[118,2303,2304],{"class":128},"\u003C>(a, b);",[118,2306,2307],{"class":190}," \u002F\u002F调用函数模板\n",[118,2309,2310],{"class":120,"line":481},[118,2311,185],{"emptyLinePlaceholder":184},[118,2313,2314],{"class":120,"line":487},[118,2315,2316],{"class":190},"    \u002F\u002F3、函数模板也可以发生重载\n",[118,2318,2319,2321,2323,2325,2328],{"class":120,"line":493},[118,2320,227],{"class":124},[118,2322,827],{"class":128},[118,2324,233],{"class":124},[118,2326,2327],{"class":459}," 30",[118,2329,463],{"class":128},[118,2331,2332,2334,2337],{"class":120,"line":498},[118,2333,2283],{"class":135},[118,2335,2336],{"class":128},"(a, b, c);",[118,2338,2339],{"class":190}," \u002F\u002F调用重载的函数模板\n",[118,2341,2342],{"class":120,"line":504},[118,2343,185],{"emptyLinePlaceholder":184},[118,2345,2346],{"class":120,"line":510},[118,2347,2348],{"class":190},"    \u002F\u002F4、 如果函数模板可以产生更好的匹配,优先调用函数模板\n",[118,2350,2351,2353,2356,2358,2361],{"class":120,"line":519},[118,2352,824],{"class":124},[118,2354,2355],{"class":128}," c1 ",[118,2357,233],{"class":124},[118,2359,2360],{"class":557}," 'a'",[118,2362,463],{"class":128},[118,2364,2365,2367,2370,2372,2375],{"class":120,"line":524},[118,2366,824],{"class":124},[118,2368,2369],{"class":128}," c2 ",[118,2371,233],{"class":124},[118,2373,2374],{"class":557}," 'b'",[118,2376,463],{"class":128},[118,2378,2379,2381,2384],{"class":120,"line":530},[118,2380,2283],{"class":135},[118,2382,2383],{"class":128},"(c1, c2);",[118,2385,2307],{"class":190},[118,2387,2388],{"class":120,"line":543},[118,2389,264],{"class":128},[118,2391,2392],{"class":120,"line":548},[118,2393,185],{"emptyLinePlaceholder":184},[118,2395,2396,2398,2400],{"class":120,"line":571},[118,2397,537],{"class":124},[118,2399,609],{"class":135},[118,2401,612],{"class":128},[118,2403,2404],{"class":120,"line":589},[118,2405,185],{"emptyLinePlaceholder":184},[118,2407,2408,2410],{"class":120,"line":594},[118,2409,623],{"class":135},[118,2411,626],{"class":128},[118,2413,2414],{"class":120,"line":599},[118,2415,185],{"emptyLinePlaceholder":184},[118,2417,2418],{"class":120,"line":604},[118,2419,185],{"emptyLinePlaceholder":184},[118,2421,2422,2424,2426],{"class":120,"line":615},[118,2423,642],{"class":124},[118,2425,645],{"class":459},[118,2427,463],{"class":128},[118,2429,2430],{"class":120,"line":620},[118,2431,264],{"class":128},[19,2433,2434],{},[23,2435,150],{},[108,2437,2440],{"className":2438,"code":2439,"language":662,"meta":113},[660],"调用的普通函数\n调用的模板\n调用重载的模板\n调用的模板\n",[115,2441,2439],{"__ignoreMap":113},[19,2443,2444],{},"总结：既然提供了函数模板，最好就不要提供普通函数，否则容易出现二义性",[89,2446,2447],{"id":2447},"模板的局限性",[19,2449,2450],{},[23,2451,2452],{},"局限性：",[62,2454,2455],{},[65,2456,2457],{},"模板的通用性并不是万能的",[19,2459,2460],{},[23,2461,2462],{},"例如：",[108,2464,2466],{"className":110,"code":2465,"language":112,"meta":113,"style":113},"    template\u003Cclass T>\n    void f(T a, T b)\n    { \n        a = b;\n    }\n",[115,2467,2468,2481,2503,2508,2517],{"__ignoreMap":113},[118,2469,2470,2473,2475,2477,2479],{"class":120,"line":121},[118,2471,2472],{"class":124},"    template",[118,2474,129],{"class":128},[118,2476,714],{"class":124},[118,2478,136],{"class":135},[118,2480,139],{"class":128},[118,2482,2483,2486,2489,2491,2493,2495,2497,2499,2501],{"class":120,"line":142},[118,2484,2485],{"class":124},"    void",[118,2487,2488],{"class":135}," f",[118,2490,203],{"class":128},[118,2492,370],{"class":135},[118,2494,210],{"class":209},[118,2496,213],{"class":128},[118,2498,370],{"class":135},[118,2500,218],{"class":209},[118,2502,386],{"class":128},[118,2504,2505],{"class":120,"line":194},[118,2506,2507],{"class":128},"    { \n",[118,2509,2510,2513,2515],{"class":120,"line":224},[118,2511,2512],{"class":128},"        a ",[118,2514,233],{"class":124},[118,2516,247],{"class":128},[118,2518,2519],{"class":120,"line":239},[118,2520,1354],{"class":128},[19,2522,2523,151,2525,155],{},[23,2524,150],{},[115,2526,154],{},[19,2528,2529],{},"在上述代码中提供的赋值操作，如果传入的a和b是一个数组，就无法实现了",[19,2531,2532],{},"再例如：",[108,2534,2536],{"className":110,"code":2535,"language":112,"meta":113,"style":113},"    template\u003Cclass T>\n    void f(T a, T b)\n    { \n        if(a > b) { ... }\n    }\n",[115,2537,2538,2550,2570,2574,2586],{"__ignoreMap":113},[118,2539,2540,2542,2544,2546,2548],{"class":120,"line":121},[118,2541,2472],{"class":124},[118,2543,129],{"class":128},[118,2545,714],{"class":124},[118,2547,136],{"class":135},[118,2549,139],{"class":128},[118,2551,2552,2554,2556,2558,2560,2562,2564,2566,2568],{"class":120,"line":142},[118,2553,2485],{"class":124},[118,2555,2488],{"class":135},[118,2557,203],{"class":128},[118,2559,370],{"class":135},[118,2561,210],{"class":209},[118,2563,213],{"class":128},[118,2565,370],{"class":135},[118,2567,218],{"class":209},[118,2569,386],{"class":128},[118,2571,2572],{"class":120,"line":194},[118,2573,2507],{"class":128},[118,2575,2576,2578,2581,2583],{"class":120,"line":224},[118,2577,1321],{"class":124},[118,2579,2580],{"class":128},"(a ",[118,2582,1152],{"class":124},[118,2584,2585],{"class":128}," b) { ... }\n",[118,2587,2588],{"class":120,"line":239},[118,2589,1354],{"class":128},[19,2591,2592,151,2594,155],{},[23,2593,150],{},[115,2595,154],{},[19,2597,2598],{},"在上述代码中，如果T的数据类型传入的是像Person这样的自定义数据类型，也无法正常运行",[19,2600,2601,2602,2605,2606],{},"因此C++为了解决这种问题，提供模板的重载，可以为这些",[23,2603,2604],{},"特定的类型","提供",[23,2607,2608],{},"具体化的模板",[19,2610,2611],{},[23,2612,174],{},[108,2614,2616],{"className":110,"code":2615,"language":112,"meta":113,"style":113},"#include\u003Ciostream>\nusing namespace std;\n\n#include \u003Cstring>\n\nclass Person\n{\npublic:\n    Person(string name, int age)\n    {\n        this->m_Name = name;\n        this->m_Age = age;\n    }\n    string m_Name;\n    int m_Age;\n};\n\n\u002F\u002F普通函数模板\ntemplate\u003Cclass T>\nbool myCompare(T& a, T& b)\n{\n    if (a == b)\n    {\n        return true;\n    }\n    else\n    {\n        return false;\n    }\n}\n\n\u002F\u002F具体化，显示具体化的原型和定意思以template\u003C>开头，并通过名称来指出类型\n\u002F\u002F具体化优先于常规模板\ntemplate\u003C> bool myCompare(Person &p1, Person &p2)\n{\n    if ( p1.m_Name  == p2.m_Name && p1.m_Age == p2.m_Age)\n    {\n        return true;\n    }\n    else\n    {\n        return false;\n    }\n}\n\nvoid test01()\n{\n    int a = 10;\n    int b = 20;\n    \u002F\u002F内置数据类型可以直接使用通用的函数模板\n    bool ret = myCompare(a, b);\n    if (ret)\n    {\n        cout \u003C\u003C \"a == b \" \u003C\u003C endl;\n    }\n    else\n    {\n        cout \u003C\u003C \"a != b \" \u003C\u003C endl;\n    }\n}\n\nvoid test02()\n{\n    Person p1(\"Tom\", 10);\n    Person p2(\"Tom\", 10);\n    \u002F\u002F自定义数据类型，不会调用普通的函数模板\n    \u002F\u002F可以创建具体化的Person数据类型的模板，用于特殊处理这个类型\n    bool ret = myCompare(p1, p2);\n    if (ret)\n    {\n        cout \u003C\u003C \"p1 == p2 \" \u003C\u003C endl;\n    }\n    else\n    {\n        cout \u003C\u003C \"p1 != p2 \" \u003C\u003C endl;\n    }\n}\n\nint main() {\n\n    test01();\n\n    test02();\n\n\n    return 0;\n}\n",[115,2617,2618,2626,2639,2643,2650,2654,2661,2665,2670,2692,2696,2709,2721,2725,2730,2737,2742,2746,2751,2763,2789,2793,2807,2811,2821,2825,2830,2834,2843,2847,2851,2855,2860,2865,2897,2901,2924,2928,2936,2940,2944,2948,2956,2960,2964,2968,2976,2980,2992,3004,3009,3023,3030,3034,3047,3051,3055,3059,3072,3076,3080,3084,3092,3096,3116,3133,3139,3145,3159,3166,3171,3185,3190,3195,3200,3214,3219,3224,3229,3238,3243,3250,3255,3262,3267,3272,3281],{"__ignoreMap":113},[118,2619,2620,2623],{"class":120,"line":121},[118,2621,2622],{"class":124},"#include",[118,2624,2625],{"class":557},"\u003Ciostream>\n",[118,2627,2628,2631,2634,2637],{"class":120,"line":142},[118,2629,2630],{"class":124},"using",[118,2632,2633],{"class":124}," namespace",[118,2635,2636],{"class":135}," std",[118,2638,463],{"class":128},[118,2640,2641],{"class":120,"line":194},[118,2642,185],{"emptyLinePlaceholder":184},[118,2644,2645,2647],{"class":120,"line":224},[118,2646,2622],{"class":124},[118,2648,2649],{"class":557}," \u003Cstring>\n",[118,2651,2652],{"class":120,"line":239},[118,2653,185],{"emptyLinePlaceholder":184},[118,2655,2656,2658],{"class":120,"line":250},[118,2657,714],{"class":124},[118,2659,2660],{"class":135}," Person\n",[118,2662,2663],{"class":120,"line":261},[118,2664,392],{"class":128},[118,2666,2667],{"class":120,"line":267},[118,2668,2669],{"class":124},"public:\n",[118,2671,2672,2675,2677,2680,2683,2685,2687,2690],{"class":120,"line":272},[118,2673,2674],{"class":135},"    Person",[118,2676,203],{"class":128},[118,2678,2679],{"class":135},"string",[118,2681,2682],{"class":209}," name",[118,2684,213],{"class":128},[118,2686,537],{"class":124},[118,2688,2689],{"class":209}," age",[118,2691,386],{"class":128},[118,2693,2694],{"class":120,"line":278},[118,2695,1223],{"class":128},[118,2697,2698,2701,2704,2706],{"class":120,"line":301},[118,2699,2700],{"class":459},"        this",[118,2702,2703],{"class":128},"->m_Name ",[118,2705,233],{"class":124},[118,2707,2708],{"class":128}," name;\n",[118,2710,2711,2713,2716,2718],{"class":120,"line":313},[118,2712,2700],{"class":459},[118,2714,2715],{"class":128},"->m_Age ",[118,2717,233],{"class":124},[118,2719,2720],{"class":128}," age;\n",[118,2722,2723],{"class":120,"line":322},[118,2724,1354],{"class":128},[118,2726,2727],{"class":120,"line":331},[118,2728,2729],{"class":128},"    string m_Name;\n",[118,2731,2732,2734],{"class":120,"line":336},[118,2733,227],{"class":124},[118,2735,2736],{"class":128}," m_Age;\n",[118,2738,2739],{"class":120,"line":341},[118,2740,2741],{"class":128},"};\n",[118,2743,2744],{"class":120,"line":347},[118,2745,185],{"emptyLinePlaceholder":184},[118,2747,2748],{"class":120,"line":360},[118,2749,2750],{"class":190},"\u002F\u002F普通函数模板\n",[118,2752,2753,2755,2757,2759,2761],{"class":120,"line":389},[118,2754,125],{"class":124},[118,2756,129],{"class":128},[118,2758,714],{"class":124},[118,2760,136],{"class":135},[118,2762,139],{"class":128},[118,2764,2765,2768,2771,2773,2775,2777,2779,2781,2783,2785,2787],{"class":120,"line":395},[118,2766,2767],{"class":124},"bool",[118,2769,2770],{"class":135}," myCompare",[118,2772,203],{"class":128},[118,2774,370],{"class":135},[118,2776,373],{"class":124},[118,2778,210],{"class":209},[118,2780,213],{"class":128},[118,2782,370],{"class":135},[118,2784,373],{"class":124},[118,2786,218],{"class":209},[118,2788,386],{"class":128},[118,2790,2791],{"class":120,"line":405},[118,2792,392],{"class":128},[118,2794,2795,2798,2801,2804],{"class":120,"line":414},[118,2796,2797],{"class":124},"    if",[118,2799,2800],{"class":128}," (a ",[118,2802,2803],{"class":124},"==",[118,2805,2806],{"class":128}," b)\n",[118,2808,2809],{"class":120,"line":423},[118,2810,1223],{"class":128},[118,2812,2813,2816,2819],{"class":120,"line":428},[118,2814,2815],{"class":124},"        return",[118,2817,2818],{"class":459}," true",[118,2820,463],{"class":128},[118,2822,2823],{"class":120,"line":433},[118,2824,1354],{"class":128},[118,2826,2827],{"class":120,"line":444},[118,2828,2829],{"class":124},"    else\n",[118,2831,2832],{"class":120,"line":449},[118,2833,1223],{"class":128},[118,2835,2836,2838,2841],{"class":120,"line":466},[118,2837,2815],{"class":124},[118,2839,2840],{"class":459}," false",[118,2842,463],{"class":128},[118,2844,2845],{"class":120,"line":481},[118,2846,1354],{"class":128},[118,2848,2849],{"class":120,"line":487},[118,2850,264],{"class":128},[118,2852,2853],{"class":120,"line":493},[118,2854,185],{"emptyLinePlaceholder":184},[118,2856,2857],{"class":120,"line":498},[118,2858,2859],{"class":190},"\u002F\u002F具体化，显示具体化的原型和定意思以template\u003C>开头，并通过名称来指出类型\n",[118,2861,2862],{"class":120,"line":504},[118,2863,2864],{"class":190},"\u002F\u002F具体化优先于常规模板\n",[118,2866,2867,2869,2872,2874,2876,2878,2881,2883,2886,2888,2890,2892,2895],{"class":120,"line":510},[118,2868,125],{"class":124},[118,2870,2871],{"class":128},"\u003C> ",[118,2873,2767],{"class":124},[118,2875,2770],{"class":135},[118,2877,203],{"class":128},[118,2879,2880],{"class":135},"Person",[118,2882,1089],{"class":124},[118,2884,2885],{"class":209},"p1",[118,2887,213],{"class":128},[118,2889,2880],{"class":135},[118,2891,1089],{"class":124},[118,2893,2894],{"class":209},"p2",[118,2896,386],{"class":128},[118,2898,2899],{"class":120,"line":519},[118,2900,392],{"class":128},[118,2902,2903,2905,2908,2910,2913,2916,2919,2921],{"class":120,"line":524},[118,2904,2797],{"class":124},[118,2906,2907],{"class":128}," ( p1.m_Name  ",[118,2909,2803],{"class":124},[118,2911,2912],{"class":128}," p2.m_Name ",[118,2914,2915],{"class":124},"&&",[118,2917,2918],{"class":128}," p1.m_Age ",[118,2920,2803],{"class":124},[118,2922,2923],{"class":128}," p2.m_Age)\n",[118,2925,2926],{"class":120,"line":530},[118,2927,1223],{"class":128},[118,2929,2930,2932,2934],{"class":120,"line":543},[118,2931,2815],{"class":124},[118,2933,2818],{"class":459},[118,2935,463],{"class":128},[118,2937,2938],{"class":120,"line":548},[118,2939,1354],{"class":128},[118,2941,2942],{"class":120,"line":571},[118,2943,2829],{"class":124},[118,2945,2946],{"class":120,"line":589},[118,2947,1223],{"class":128},[118,2949,2950,2952,2954],{"class":120,"line":594},[118,2951,2815],{"class":124},[118,2953,2840],{"class":459},[118,2955,463],{"class":128},[118,2957,2958],{"class":120,"line":599},[118,2959,1354],{"class":128},[118,2961,2962],{"class":120,"line":604},[118,2963,264],{"class":128},[118,2965,2966],{"class":120,"line":615},[118,2967,185],{"emptyLinePlaceholder":184},[118,2969,2970,2972,2974],{"class":120,"line":620},[118,2971,197],{"class":124},[118,2973,438],{"class":135},[118,2975,441],{"class":128},[118,2977,2978],{"class":120,"line":629},[118,2979,392],{"class":128},[118,2981,2982,2984,2986,2988,2990],{"class":120,"line":634},[118,2983,227],{"class":124},[118,2985,454],{"class":128},[118,2987,233],{"class":124},[118,2989,460],{"class":459},[118,2991,463],{"class":128},[118,2993,2994,2996,2998,3000,3002],{"class":120,"line":639},[118,2995,227],{"class":124},[118,2997,471],{"class":128},[118,2999,233],{"class":124},[118,3001,476],{"class":459},[118,3003,463],{"class":128},[118,3005,3006],{"class":120,"line":650},[118,3007,3008],{"class":190},"    \u002F\u002F内置数据类型可以直接使用通用的函数模板\n",[118,3010,3011,3014,3017,3019,3021],{"class":120,"line":1612},[118,3012,3013],{"class":124},"    bool",[118,3015,3016],{"class":128}," ret ",[118,3018,233],{"class":124},[118,3020,2770],{"class":135},[118,3022,516],{"class":128},[118,3024,3025,3027],{"class":120,"line":1636},[118,3026,2797],{"class":124},[118,3028,3029],{"class":128}," (ret)\n",[118,3031,3032],{"class":120,"line":1644},[118,3033,1223],{"class":128},[118,3035,3036,3038,3040,3043,3045],{"class":120,"line":1651},[118,3037,1424],{"class":128},[118,3039,554],{"class":124},[118,3041,3042],{"class":557}," \"a == b \"",[118,3044,561],{"class":124},[118,3046,568],{"class":128},[118,3048,3049],{"class":120,"line":1656},[118,3050,1354],{"class":128},[118,3052,3053],{"class":120,"line":1661},[118,3054,2829],{"class":124},[118,3056,3057],{"class":120,"line":1670},[118,3058,1223],{"class":128},[118,3060,3061,3063,3065,3068,3070],{"class":120,"line":1675},[118,3062,1424],{"class":128},[118,3064,554],{"class":124},[118,3066,3067],{"class":557}," \"a != b \"",[118,3069,561],{"class":124},[118,3071,568],{"class":128},[118,3073,3074],{"class":120,"line":1682},[118,3075,1354],{"class":128},[118,3077,3078],{"class":120,"line":1689},[118,3079,264],{"class":128},[118,3081,3082],{"class":120,"line":1694},[118,3083,185],{"emptyLinePlaceholder":184},[118,3085,3086,3088,3090],{"class":120,"line":1699},[118,3087,197],{"class":124},[118,3089,922],{"class":135},[118,3091,441],{"class":128},[118,3093,3094],{"class":120,"line":1708},[118,3095,392],{"class":128},[118,3097,3099,3102,3104,3106,3109,3111,3114],{"class":120,"line":3098},64,[118,3100,3101],{"class":128},"    Person ",[118,3103,2885],{"class":135},[118,3105,203],{"class":128},[118,3107,3108],{"class":557},"\"Tom\"",[118,3110,213],{"class":128},[118,3112,3113],{"class":459},"10",[118,3115,1511],{"class":128},[118,3117,3119,3121,3123,3125,3127,3129,3131],{"class":120,"line":3118},65,[118,3120,3101],{"class":128},[118,3122,2894],{"class":135},[118,3124,203],{"class":128},[118,3126,3108],{"class":557},[118,3128,213],{"class":128},[118,3130,3113],{"class":459},[118,3132,1511],{"class":128},[118,3134,3136],{"class":120,"line":3135},66,[118,3137,3138],{"class":190},"    \u002F\u002F自定义数据类型，不会调用普通的函数模板\n",[118,3140,3142],{"class":120,"line":3141},67,[118,3143,3144],{"class":190},"    \u002F\u002F可以创建具体化的Person数据类型的模板，用于特殊处理这个类型\n",[118,3146,3148,3150,3152,3154,3156],{"class":120,"line":3147},68,[118,3149,3013],{"class":124},[118,3151,3016],{"class":128},[118,3153,233],{"class":124},[118,3155,2770],{"class":135},[118,3157,3158],{"class":128},"(p1, p2);\n",[118,3160,3162,3164],{"class":120,"line":3161},69,[118,3163,2797],{"class":124},[118,3165,3029],{"class":128},[118,3167,3169],{"class":120,"line":3168},70,[118,3170,1223],{"class":128},[118,3172,3174,3176,3178,3181,3183],{"class":120,"line":3173},71,[118,3175,1424],{"class":128},[118,3177,554],{"class":124},[118,3179,3180],{"class":557}," \"p1 == p2 \"",[118,3182,561],{"class":124},[118,3184,568],{"class":128},[118,3186,3188],{"class":120,"line":3187},72,[118,3189,1354],{"class":128},[118,3191,3193],{"class":120,"line":3192},73,[118,3194,2829],{"class":124},[118,3196,3198],{"class":120,"line":3197},74,[118,3199,1223],{"class":128},[118,3201,3203,3205,3207,3210,3212],{"class":120,"line":3202},75,[118,3204,1424],{"class":128},[118,3206,554],{"class":124},[118,3208,3209],{"class":557}," \"p1 != p2 \"",[118,3211,561],{"class":124},[118,3213,568],{"class":128},[118,3215,3217],{"class":120,"line":3216},76,[118,3218,1354],{"class":128},[118,3220,3222],{"class":120,"line":3221},77,[118,3223,264],{"class":128},[118,3225,3227],{"class":120,"line":3226},78,[118,3228,185],{"emptyLinePlaceholder":184},[118,3230,3232,3234,3236],{"class":120,"line":3231},79,[118,3233,537],{"class":124},[118,3235,609],{"class":135},[118,3237,612],{"class":128},[118,3239,3241],{"class":120,"line":3240},80,[118,3242,185],{"emptyLinePlaceholder":184},[118,3244,3246,3248],{"class":120,"line":3245},81,[118,3247,623],{"class":135},[118,3249,626],{"class":128},[118,3251,3253],{"class":120,"line":3252},82,[118,3254,185],{"emptyLinePlaceholder":184},[118,3256,3258,3260],{"class":120,"line":3257},83,[118,3259,982],{"class":135},[118,3261,626],{"class":128},[118,3263,3265],{"class":120,"line":3264},84,[118,3266,185],{"emptyLinePlaceholder":184},[118,3268,3270],{"class":120,"line":3269},85,[118,3271,185],{"emptyLinePlaceholder":184},[118,3273,3275,3277,3279],{"class":120,"line":3274},86,[118,3276,642],{"class":124},[118,3278,645],{"class":459},[118,3280,463],{"class":128},[118,3282,3284],{"class":120,"line":3283},87,[118,3285,264],{"class":128},[19,3287,3288],{},[23,3289,150],{},[108,3291,3294],{"className":3292,"code":3293,"language":662,"meta":113},[660],"a != b\np1 == p2\n",[115,3295,3293],{"__ignoreMap":113},[19,3297,667],{},[62,3299,3300,3303],{},[65,3301,3302],{},"利用具体化的模板，可以解决自定义类型的通用化",[65,3304,3305],{},"学习模板并不是为了写模板，而是在STL能够运用系统提供的模板",[15,3307,87],{"id":87},[89,3309,3310],{"id":3310},"类模板语法",[19,3312,3313],{},"类模板作用：",[62,3315,3316],{},[65,3317,3318,3319,101],{},"建立一个通用类，类中的成员 数据类型可以不具体制定，用一个",[23,3320,100],{},[19,3322,3323],{},[23,3324,106],{},[108,3326,3328],{"className":110,"code":3327,"language":112,"meta":113,"style":113},"template\u003Ctypename T>\n类\n",[115,3329,3330,3342],{"__ignoreMap":113},[118,3331,3332,3334,3336,3338,3340],{"class":120,"line":121},[118,3333,125],{"class":124},[118,3335,129],{"class":128},[118,3337,132],{"class":124},[118,3339,136],{"class":135},[118,3341,139],{"class":128},[118,3343,3344],{"class":120,"line":142},[118,3345,3346],{"class":128},"类\n",[19,3348,3349,151,3351,155],{},[23,3350,150],{},[115,3352,154],{},[19,3354,3355],{},[23,3356,160],{},[19,3358,163],{},[19,3360,166],{},[19,3362,169],{},[19,3364,3365],{},[23,3366,174],{},[108,3368,3370],{"className":110,"code":3369,"language":112,"meta":113,"style":113},"#include \u003Cstring>\n\u002F\u002F类模板\ntemplate\u003Cclass NameType, class AgeType> \nclass Person\n{\npublic:\n    Person(NameType name, AgeType age)\n    {\n        this->mName = name;\n        this->mAge = age;\n    }\n    void showPerson()\n    {\n        cout \u003C\u003C \"name: \" \u003C\u003C this->mName \u003C\u003C \" age: \" \u003C\u003C this->mAge \u003C\u003C endl;\n    }\npublic:\n    NameType mName;\n    AgeType mAge;\n};\n\nvoid test01()\n{\n    \u002F\u002F 指定NameType 为string类型，AgeType 为 int类型\n    Person\u003Cstring, int>P1(\"孙悟空\", 999);\n    P1.showPerson();\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,3371,3372,3378,3383,3404,3410,3414,3418,3438,3442,3453,3464,3468,3477,3481,3512,3516,3520,3525,3530,3534,3538,3546,3550,3555,3582,3592,3596,3600,3608,3612,3618,3622,3626,3634],{"__ignoreMap":113},[118,3373,3374,3376],{"class":120,"line":121},[118,3375,2622],{"class":124},[118,3377,2649],{"class":557},[118,3379,3380],{"class":120,"line":142},[118,3381,3382],{"class":190},"\u002F\u002F类模板\n",[118,3384,3385,3387,3389,3391,3394,3396,3398,3401],{"class":120,"line":194},[118,3386,125],{"class":124},[118,3388,129],{"class":128},[118,3390,714],{"class":124},[118,3392,3393],{"class":135}," NameType",[118,3395,213],{"class":128},[118,3397,714],{"class":124},[118,3399,3400],{"class":135}," AgeType",[118,3402,3403],{"class":128},"> \n",[118,3405,3406,3408],{"class":120,"line":224},[118,3407,714],{"class":124},[118,3409,2660],{"class":135},[118,3411,3412],{"class":120,"line":239},[118,3413,392],{"class":128},[118,3415,3416],{"class":120,"line":250},[118,3417,2669],{"class":124},[118,3419,3420,3422,3424,3427,3429,3431,3434,3436],{"class":120,"line":261},[118,3421,2674],{"class":135},[118,3423,203],{"class":128},[118,3425,3426],{"class":135},"NameType",[118,3428,2682],{"class":209},[118,3430,213],{"class":128},[118,3432,3433],{"class":135},"AgeType",[118,3435,2689],{"class":209},[118,3437,386],{"class":128},[118,3439,3440],{"class":120,"line":267},[118,3441,1223],{"class":128},[118,3443,3444,3446,3449,3451],{"class":120,"line":272},[118,3445,2700],{"class":459},[118,3447,3448],{"class":128},"->mName ",[118,3450,233],{"class":124},[118,3452,2708],{"class":128},[118,3454,3455,3457,3460,3462],{"class":120,"line":278},[118,3456,2700],{"class":459},[118,3458,3459],{"class":128},"->mAge ",[118,3461,233],{"class":124},[118,3463,2720],{"class":128},[118,3465,3466],{"class":120,"line":301},[118,3467,1354],{"class":128},[118,3469,3470,3472,3475],{"class":120,"line":313},[118,3471,2485],{"class":124},[118,3473,3474],{"class":135}," showPerson",[118,3476,441],{"class":128},[118,3478,3479],{"class":120,"line":322},[118,3480,1223],{"class":128},[118,3482,3483,3485,3487,3490,3492,3495,3497,3499,3502,3504,3506,3508,3510],{"class":120,"line":331},[118,3484,1424],{"class":128},[118,3486,554],{"class":124},[118,3488,3489],{"class":557}," \"name: \"",[118,3491,561],{"class":124},[118,3493,3494],{"class":459}," this",[118,3496,3448],{"class":128},[118,3498,554],{"class":124},[118,3500,3501],{"class":557}," \" age: \"",[118,3503,561],{"class":124},[118,3505,3494],{"class":459},[118,3507,3459],{"class":128},[118,3509,554],{"class":124},[118,3511,568],{"class":128},[118,3513,3514],{"class":120,"line":336},[118,3515,1354],{"class":128},[118,3517,3518],{"class":120,"line":341},[118,3519,2669],{"class":124},[118,3521,3522],{"class":120,"line":347},[118,3523,3524],{"class":128},"    NameType mName;\n",[118,3526,3527],{"class":120,"line":360},[118,3528,3529],{"class":128},"    AgeType mAge;\n",[118,3531,3532],{"class":120,"line":389},[118,3533,2741],{"class":128},[118,3535,3536],{"class":120,"line":395},[118,3537,185],{"emptyLinePlaceholder":184},[118,3539,3540,3542,3544],{"class":120,"line":405},[118,3541,197],{"class":124},[118,3543,438],{"class":135},[118,3545,441],{"class":128},[118,3547,3548],{"class":120,"line":414},[118,3549,392],{"class":128},[118,3551,3552],{"class":120,"line":423},[118,3553,3554],{"class":190},"    \u002F\u002F 指定NameType 为string类型，AgeType 为 int类型\n",[118,3556,3557,3559,3561,3564,3567,3570,3572,3575,3577,3580],{"class":120,"line":428},[118,3558,2674],{"class":128},[118,3560,129],{"class":124},[118,3562,3563],{"class":128},"string, ",[118,3565,3566],{"class":124},"int>",[118,3568,3569],{"class":135},"P1",[118,3571,203],{"class":128},[118,3573,3574],{"class":557},"\"孙悟空\"",[118,3576,213],{"class":128},[118,3578,3579],{"class":459},"999",[118,3581,1511],{"class":128},[118,3583,3584,3587,3590],{"class":120,"line":433},[118,3585,3586],{"class":128},"    P1.",[118,3588,3589],{"class":135},"showPerson",[118,3591,626],{"class":128},[118,3593,3594],{"class":120,"line":444},[118,3595,264],{"class":128},[118,3597,3598],{"class":120,"line":449},[118,3599,185],{"emptyLinePlaceholder":184},[118,3601,3602,3604,3606],{"class":120,"line":466},[118,3603,537],{"class":124},[118,3605,609],{"class":135},[118,3607,612],{"class":128},[118,3609,3610],{"class":120,"line":481},[118,3611,185],{"emptyLinePlaceholder":184},[118,3613,3614,3616],{"class":120,"line":487},[118,3615,623],{"class":135},[118,3617,626],{"class":128},[118,3619,3620],{"class":120,"line":493},[118,3621,185],{"emptyLinePlaceholder":184},[118,3623,3624],{"class":120,"line":498},[118,3625,185],{"emptyLinePlaceholder":184},[118,3627,3628,3630,3632],{"class":120,"line":504},[118,3629,642],{"class":124},[118,3631,645],{"class":459},[118,3633,463],{"class":128},[118,3635,3636],{"class":120,"line":510},[118,3637,264],{"class":128},[19,3639,3640],{},[23,3641,150],{},[108,3643,3646],{"className":3644,"code":3645,"language":662,"meta":113},[660],"name: 孙悟空 age: 999\n",[115,3647,3645],{"__ignoreMap":113},[19,3649,3650],{},"总结：类模板和函数模板语法相似，在声明模板template后面加类，此类称为类模板",[89,3652,3653],{"id":3653},"类模板与函数模板区别",[19,3655,3656],{},"类模板与函数模板区别主要有两点：",[2035,3658,3659,3662],{},[65,3660,3661],{},"类模板没有自动类型推导的使用方式",[65,3663,3664],{},"类模板在模板参数列表中可以有默认参数",[19,3666,3667],{},[23,3668,174],{},[108,3670,3672],{"className":110,"code":3671,"language":112,"meta":113,"style":113},"#include \u003Cstring>\n\u002F\u002F类模板\ntemplate\u003Cclass NameType, class AgeType = int> \nclass Person\n{\npublic:\n    Person(NameType name, AgeType age)\n    {\n        this->mName = name;\n        this->mAge = age;\n    }\n    void showPerson()\n    {\n        cout \u003C\u003C \"name: \" \u003C\u003C this->mName \u003C\u003C \" age: \" \u003C\u003C this->mAge \u003C\u003C endl;\n    }\npublic:\n    NameType mName;\n    AgeType mAge;\n};\n\n\u002F\u002F1、类模板没有自动类型推导的使用方式\nvoid test01()\n{\n    \u002F\u002F Person p(\"孙悟空\", 1000); \u002F\u002F 错误 类模板使用时候，不可以用自动类型推导\n    Person \u003Cstring ,int>p(\"孙悟空\", 1000); \u002F\u002F必须使用显示指定类型的方式，使用类模板\n    p.showPerson();\n}\n\n\u002F\u002F2、类模板在模板参数列表中可以有默认参数\nvoid test02()\n{\n    Person \u003Cstring> p(\"猪八戒\", 999); \u002F\u002F类模板中的模板参数列表 可以指定默认参数\n    p.showPerson();\n}\n\nint main() {\n\n    test01();\n\n    test02();\n\n\n    return 0;\n}\n",[115,3673,3674,3680,3684,3706,3712,3716,3720,3738,3742,3752,3762,3766,3774,3778,3806,3810,3814,3818,3822,3826,3830,3835,3843,3847,3855,3883,3892,3896,3900,3905,3913,3917,3944,3952,3956,3960,3968,3972,3978,3982,3988,3992,3996,4004],{"__ignoreMap":113},[118,3675,3676,3678],{"class":120,"line":121},[118,3677,2622],{"class":124},[118,3679,2649],{"class":557},[118,3681,3682],{"class":120,"line":142},[118,3683,3382],{"class":190},[118,3685,3686,3688,3690,3692,3694,3696,3698,3700,3703],{"class":120,"line":194},[118,3687,125],{"class":124},[118,3689,129],{"class":128},[118,3691,714],{"class":124},[118,3693,3393],{"class":135},[118,3695,213],{"class":128},[118,3697,714],{"class":124},[118,3699,3400],{"class":135},[118,3701,3702],{"class":124}," =",[118,3704,3705],{"class":128}," int> \n",[118,3707,3708,3710],{"class":120,"line":224},[118,3709,714],{"class":124},[118,3711,2660],{"class":135},[118,3713,3714],{"class":120,"line":239},[118,3715,392],{"class":128},[118,3717,3718],{"class":120,"line":250},[118,3719,2669],{"class":124},[118,3721,3722,3724,3726,3728,3730,3732,3734,3736],{"class":120,"line":261},[118,3723,2674],{"class":135},[118,3725,203],{"class":128},[118,3727,3426],{"class":135},[118,3729,2682],{"class":209},[118,3731,213],{"class":128},[118,3733,3433],{"class":135},[118,3735,2689],{"class":209},[118,3737,386],{"class":128},[118,3739,3740],{"class":120,"line":267},[118,3741,1223],{"class":128},[118,3743,3744,3746,3748,3750],{"class":120,"line":272},[118,3745,2700],{"class":459},[118,3747,3448],{"class":128},[118,3749,233],{"class":124},[118,3751,2708],{"class":128},[118,3753,3754,3756,3758,3760],{"class":120,"line":278},[118,3755,2700],{"class":459},[118,3757,3459],{"class":128},[118,3759,233],{"class":124},[118,3761,2720],{"class":128},[118,3763,3764],{"class":120,"line":301},[118,3765,1354],{"class":128},[118,3767,3768,3770,3772],{"class":120,"line":313},[118,3769,2485],{"class":124},[118,3771,3474],{"class":135},[118,3773,441],{"class":128},[118,3775,3776],{"class":120,"line":322},[118,3777,1223],{"class":128},[118,3779,3780,3782,3784,3786,3788,3790,3792,3794,3796,3798,3800,3802,3804],{"class":120,"line":331},[118,3781,1424],{"class":128},[118,3783,554],{"class":124},[118,3785,3489],{"class":557},[118,3787,561],{"class":124},[118,3789,3494],{"class":459},[118,3791,3448],{"class":128},[118,3793,554],{"class":124},[118,3795,3501],{"class":557},[118,3797,561],{"class":124},[118,3799,3494],{"class":459},[118,3801,3459],{"class":128},[118,3803,554],{"class":124},[118,3805,568],{"class":128},[118,3807,3808],{"class":120,"line":336},[118,3809,1354],{"class":128},[118,3811,3812],{"class":120,"line":341},[118,3813,2669],{"class":124},[118,3815,3816],{"class":120,"line":347},[118,3817,3524],{"class":128},[118,3819,3820],{"class":120,"line":360},[118,3821,3529],{"class":128},[118,3823,3824],{"class":120,"line":389},[118,3825,2741],{"class":128},[118,3827,3828],{"class":120,"line":395},[118,3829,185],{"emptyLinePlaceholder":184},[118,3831,3832],{"class":120,"line":405},[118,3833,3834],{"class":190},"\u002F\u002F1、类模板没有自动类型推导的使用方式\n",[118,3836,3837,3839,3841],{"class":120,"line":414},[118,3838,197],{"class":124},[118,3840,438],{"class":135},[118,3842,441],{"class":128},[118,3844,3845],{"class":120,"line":423},[118,3846,392],{"class":128},[118,3848,3849,3852],{"class":120,"line":428},[118,3850,3851],{"class":190},"    \u002F\u002F Person p(\"孙悟空\", 1000);",[118,3853,3854],{"class":190}," \u002F\u002F 错误 类模板使用时候，不可以用自动类型推导\n",[118,3856,3857,3859,3861,3864,3866,3868,3870,3872,3874,3877,3880],{"class":120,"line":433},[118,3858,3101],{"class":128},[118,3860,129],{"class":124},[118,3862,3863],{"class":128},"string ,",[118,3865,3566],{"class":124},[118,3867,19],{"class":135},[118,3869,203],{"class":128},[118,3871,3574],{"class":557},[118,3873,213],{"class":128},[118,3875,3876],{"class":459},"1000",[118,3878,3879],{"class":128},");",[118,3881,3882],{"class":190}," \u002F\u002F必须使用显示指定类型的方式，使用类模板\n",[118,3884,3885,3888,3890],{"class":120,"line":444},[118,3886,3887],{"class":128},"    p.",[118,3889,3589],{"class":135},[118,3891,626],{"class":128},[118,3893,3894],{"class":120,"line":449},[118,3895,264],{"class":128},[118,3897,3898],{"class":120,"line":466},[118,3899,185],{"emptyLinePlaceholder":184},[118,3901,3902],{"class":120,"line":481},[118,3903,3904],{"class":190},"\u002F\u002F2、类模板在模板参数列表中可以有默认参数\n",[118,3906,3907,3909,3911],{"class":120,"line":487},[118,3908,197],{"class":124},[118,3910,922],{"class":135},[118,3912,441],{"class":128},[118,3914,3915],{"class":120,"line":493},[118,3916,392],{"class":128},[118,3918,3919,3921,3923,3925,3927,3930,3932,3935,3937,3939,3941],{"class":120,"line":498},[118,3920,3101],{"class":128},[118,3922,129],{"class":124},[118,3924,2679],{"class":128},[118,3926,1152],{"class":124},[118,3928,3929],{"class":135}," p",[118,3931,203],{"class":128},[118,3933,3934],{"class":557},"\"猪八戒\"",[118,3936,213],{"class":128},[118,3938,3579],{"class":459},[118,3940,3879],{"class":128},[118,3942,3943],{"class":190}," \u002F\u002F类模板中的模板参数列表 可以指定默认参数\n",[118,3945,3946,3948,3950],{"class":120,"line":504},[118,3947,3887],{"class":128},[118,3949,3589],{"class":135},[118,3951,626],{"class":128},[118,3953,3954],{"class":120,"line":510},[118,3955,264],{"class":128},[118,3957,3958],{"class":120,"line":519},[118,3959,185],{"emptyLinePlaceholder":184},[118,3961,3962,3964,3966],{"class":120,"line":524},[118,3963,537],{"class":124},[118,3965,609],{"class":135},[118,3967,612],{"class":128},[118,3969,3970],{"class":120,"line":530},[118,3971,185],{"emptyLinePlaceholder":184},[118,3973,3974,3976],{"class":120,"line":543},[118,3975,623],{"class":135},[118,3977,626],{"class":128},[118,3979,3980],{"class":120,"line":548},[118,3981,185],{"emptyLinePlaceholder":184},[118,3983,3984,3986],{"class":120,"line":571},[118,3985,982],{"class":135},[118,3987,626],{"class":128},[118,3989,3990],{"class":120,"line":589},[118,3991,185],{"emptyLinePlaceholder":184},[118,3993,3994],{"class":120,"line":594},[118,3995,185],{"emptyLinePlaceholder":184},[118,3997,3998,4000,4002],{"class":120,"line":599},[118,3999,642],{"class":124},[118,4001,645],{"class":459},[118,4003,463],{"class":128},[118,4005,4006],{"class":120,"line":604},[118,4007,264],{"class":128},[19,4009,4010],{},[23,4011,150],{},[108,4013,4016],{"className":4014,"code":4015,"language":662,"meta":113},[660],"name: 孙悟空 age: 1000\nname: 猪八戒 age: 999\n",[115,4017,4015],{"__ignoreMap":113},[19,4019,667],{},[62,4021,4022,4025],{},[65,4023,4024],{},"类模板使用只能用显示指定类型方式",[65,4026,4027],{},"类模板中的模板参数列表可以有默认参数",[89,4029,4030],{"id":4030},"类模板中成员函数创建时机",[19,4032,4033],{},"类模板中成员函数和普通类中成员函数创建时机是有区别的：",[62,4035,4036,4039],{},[65,4037,4038],{},"普通类中的成员函数一开始就可以创建",[65,4040,4041],{},"类模板中的成员函数在调用时才创建",[19,4043,4044],{},[23,4045,174],{},[108,4047,4049],{"className":110,"code":4048,"language":112,"meta":113,"style":113},"class Person1\n{\npublic:\n    void showPerson1()\n    {\n        cout \u003C\u003C \"Person1 show\" \u003C\u003C endl;\n    }\n};\n\nclass Person2\n{\npublic:\n    void showPerson2()\n    {\n        cout \u003C\u003C \"Person2 show\" \u003C\u003C endl;\n    }\n};\n\ntemplate\u003Cclass T>\nclass MyClass\n{\npublic:\n    T obj;\n\n    \u002F\u002F类模板中的成员函数，并不是一开始就创建的，而是在模板调用时再生成\n\n    void fun1() { obj.showPerson1(); }\n    void fun2() { obj.showPerson2(); }\n\n};\n\nvoid test01()\n{\n    MyClass\u003CPerson1> m;\n    \n    m.fun1();\n\n    \u002F\u002Fm.fun2();\u002F\u002F编译会出错，说明函数调用才会去创建成员函数\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,4050,4051,4058,4062,4066,4075,4079,4092,4096,4100,4104,4111,4115,4119,4128,4132,4145,4149,4153,4157,4169,4176,4180,4184,4189,4193,4198,4202,4218,4232,4236,4240,4244,4252,4256,4271,4275,4285,4289,4294,4298,4302,4310,4314,4320,4324,4328,4336],{"__ignoreMap":113},[118,4052,4053,4055],{"class":120,"line":121},[118,4054,714],{"class":124},[118,4056,4057],{"class":135}," Person1\n",[118,4059,4060],{"class":120,"line":142},[118,4061,392],{"class":128},[118,4063,4064],{"class":120,"line":194},[118,4065,2669],{"class":124},[118,4067,4068,4070,4073],{"class":120,"line":224},[118,4069,2485],{"class":124},[118,4071,4072],{"class":135}," showPerson1",[118,4074,441],{"class":128},[118,4076,4077],{"class":120,"line":239},[118,4078,1223],{"class":128},[118,4080,4081,4083,4085,4088,4090],{"class":120,"line":250},[118,4082,1424],{"class":128},[118,4084,554],{"class":124},[118,4086,4087],{"class":557}," \"Person1 show\"",[118,4089,561],{"class":124},[118,4091,568],{"class":128},[118,4093,4094],{"class":120,"line":261},[118,4095,1354],{"class":128},[118,4097,4098],{"class":120,"line":267},[118,4099,2741],{"class":128},[118,4101,4102],{"class":120,"line":272},[118,4103,185],{"emptyLinePlaceholder":184},[118,4105,4106,4108],{"class":120,"line":278},[118,4107,714],{"class":124},[118,4109,4110],{"class":135}," Person2\n",[118,4112,4113],{"class":120,"line":301},[118,4114,392],{"class":128},[118,4116,4117],{"class":120,"line":313},[118,4118,2669],{"class":124},[118,4120,4121,4123,4126],{"class":120,"line":322},[118,4122,2485],{"class":124},[118,4124,4125],{"class":135}," showPerson2",[118,4127,441],{"class":128},[118,4129,4130],{"class":120,"line":331},[118,4131,1223],{"class":128},[118,4133,4134,4136,4138,4141,4143],{"class":120,"line":336},[118,4135,1424],{"class":128},[118,4137,554],{"class":124},[118,4139,4140],{"class":557}," \"Person2 show\"",[118,4142,561],{"class":124},[118,4144,568],{"class":128},[118,4146,4147],{"class":120,"line":341},[118,4148,1354],{"class":128},[118,4150,4151],{"class":120,"line":347},[118,4152,2741],{"class":128},[118,4154,4155],{"class":120,"line":360},[118,4156,185],{"emptyLinePlaceholder":184},[118,4158,4159,4161,4163,4165,4167],{"class":120,"line":389},[118,4160,125],{"class":124},[118,4162,129],{"class":128},[118,4164,714],{"class":124},[118,4166,136],{"class":135},[118,4168,139],{"class":128},[118,4170,4171,4173],{"class":120,"line":395},[118,4172,714],{"class":124},[118,4174,4175],{"class":135}," MyClass\n",[118,4177,4178],{"class":120,"line":405},[118,4179,392],{"class":128},[118,4181,4182],{"class":120,"line":414},[118,4183,2669],{"class":124},[118,4185,4186],{"class":120,"line":423},[118,4187,4188],{"class":128},"    T obj;\n",[118,4190,4191],{"class":120,"line":428},[118,4192,185],{"emptyLinePlaceholder":184},[118,4194,4195],{"class":120,"line":433},[118,4196,4197],{"class":190},"    \u002F\u002F类模板中的成员函数，并不是一开始就创建的，而是在模板调用时再生成\n",[118,4199,4200],{"class":120,"line":444},[118,4201,185],{"emptyLinePlaceholder":184},[118,4203,4204,4206,4209,4212,4215],{"class":120,"line":449},[118,4205,2485],{"class":124},[118,4207,4208],{"class":135}," fun1",[118,4210,4211],{"class":128},"() { obj.",[118,4213,4214],{"class":135},"showPerson1",[118,4216,4217],{"class":128},"(); }\n",[118,4219,4220,4222,4225,4227,4230],{"class":120,"line":466},[118,4221,2485],{"class":124},[118,4223,4224],{"class":135}," fun2",[118,4226,4211],{"class":128},[118,4228,4229],{"class":135},"showPerson2",[118,4231,4217],{"class":128},[118,4233,4234],{"class":120,"line":481},[118,4235,185],{"emptyLinePlaceholder":184},[118,4237,4238],{"class":120,"line":487},[118,4239,2741],{"class":128},[118,4241,4242],{"class":120,"line":493},[118,4243,185],{"emptyLinePlaceholder":184},[118,4245,4246,4248,4250],{"class":120,"line":498},[118,4247,197],{"class":124},[118,4249,438],{"class":135},[118,4251,441],{"class":128},[118,4253,4254],{"class":120,"line":504},[118,4255,392],{"class":128},[118,4257,4258,4261,4263,4266,4268],{"class":120,"line":510},[118,4259,4260],{"class":128},"    MyClass",[118,4262,129],{"class":124},[118,4264,4265],{"class":128},"Person1",[118,4267,1152],{"class":124},[118,4269,4270],{"class":128}," m;\n",[118,4272,4273],{"class":120,"line":519},[118,4274,484],{"class":128},[118,4276,4277,4280,4283],{"class":120,"line":524},[118,4278,4279],{"class":128},"    m.",[118,4281,4282],{"class":135},"fun1",[118,4284,626],{"class":128},[118,4286,4287],{"class":120,"line":530},[118,4288,185],{"emptyLinePlaceholder":184},[118,4290,4291],{"class":120,"line":543},[118,4292,4293],{"class":190},"    \u002F\u002Fm.fun2();\u002F\u002F编译会出错，说明函数调用才会去创建成员函数\n",[118,4295,4296],{"class":120,"line":548},[118,4297,264],{"class":128},[118,4299,4300],{"class":120,"line":571},[118,4301,185],{"emptyLinePlaceholder":184},[118,4303,4304,4306,4308],{"class":120,"line":589},[118,4305,537],{"class":124},[118,4307,609],{"class":135},[118,4309,612],{"class":128},[118,4311,4312],{"class":120,"line":594},[118,4313,185],{"emptyLinePlaceholder":184},[118,4315,4316,4318],{"class":120,"line":599},[118,4317,623],{"class":135},[118,4319,626],{"class":128},[118,4321,4322],{"class":120,"line":604},[118,4323,185],{"emptyLinePlaceholder":184},[118,4325,4326],{"class":120,"line":615},[118,4327,185],{"emptyLinePlaceholder":184},[118,4329,4330,4332,4334],{"class":120,"line":620},[118,4331,642],{"class":124},[118,4333,645],{"class":459},[118,4335,463],{"class":128},[118,4337,4338],{"class":120,"line":629},[118,4339,264],{"class":128},[19,4341,4342],{},[23,4343,150],{},[108,4345,4348],{"className":4346,"code":4347,"language":662,"meta":113},[660],"Person1 show\n",[115,4349,4347],{"__ignoreMap":113},[19,4351,4352],{},"总结：类模板中的成员函数并不是一开始就创建的，在调用时才去创建",[89,4354,4355],{"id":4355},"类模板对象做函数参数",[19,4357,4358],{},"学习目标：",[62,4360,4361],{},[65,4362,4363],{},"类模板实例化出的对象，向函数传参的方式",[19,4365,4366],{},"一共有三种传入方式：",[2035,4368,4369,4372,4375],{},[65,4370,4371],{},"指定传入的类型   --- 直接显示对象的数据类型",[65,4373,4374],{},"参数模板化           --- 将对象中的参数变为模板进行传递",[65,4376,4377],{},"整个类模板化       --- 将这个对象类型 模板化进行传递",[19,4379,4380],{},[23,4381,174],{},[108,4383,4385],{"className":110,"code":4384,"language":112,"meta":113,"style":113},"#include \u003Cstring>\n\u002F\u002F类模板\ntemplate\u003Cclass NameType, class AgeType = int> \nclass Person\n{\npublic:\n    Person(NameType name, AgeType age)\n    {\n        this->mName = name;\n        this->mAge = age;\n    }\n    void showPerson()\n    {\n        cout \u003C\u003C \"name: \" \u003C\u003C this->mName \u003C\u003C \" age: \" \u003C\u003C this->mAge \u003C\u003C endl;\n    }\npublic:\n    NameType mName;\n    AgeType mAge;\n};\n\n\u002F\u002F1、指定传入的类型\nvoid printPerson1(Person\u003Cstring, int> &p) \n{\n    p.showPerson();\n}\nvoid test01()\n{\n    Person \u003Cstring, int >p(\"孙悟空\", 100);\n    printPerson1(p);\n}\n\n\u002F\u002F2、参数模板化\ntemplate \u003Cclass T1, class T2>\nvoid printPerson2(Person\u003CT1, T2>&p)\n{\n    p.showPerson();\n    cout \u003C\u003C \"T1的类型为： \" \u003C\u003C typeid(T1).name() \u003C\u003C endl;\n    cout \u003C\u003C \"T2的类型为： \" \u003C\u003C typeid(T2).name() \u003C\u003C endl;\n}\nvoid test02()\n{\n    Person \u003Cstring, int >p(\"猪八戒\", 90);\n    printPerson2(p);\n}\n\n\u002F\u002F3、整个类模板化\ntemplate\u003Cclass T>\nvoid printPerson3(T & p)\n{\n    cout \u003C\u003C \"T的类型为： \" \u003C\u003C typeid(T).name() \u003C\u003C endl;\n    p.showPerson();\n\n}\nvoid test03()\n{\n    Person \u003Cstring, int >p(\"唐僧\", 30);\n    printPerson3(p);\n}\n\nint main() {\n\n    test01();\n    test02();\n    test03();\n\n\n    return 0;\n}\n",[115,4386,4387,4393,4397,4417,4423,4427,4431,4449,4453,4463,4473,4477,4485,4489,4517,4521,4525,4529,4533,4537,4541,4546,4574,4578,4586,4590,4598,4602,4628,4636,4640,4644,4649,4670,4699,4703,4711,4738,4762,4766,4774,4778,4803,4810,4814,4818,4823,4835,4852,4856,4880,4888,4892,4896,4905,4909,4935,4942,4946,4950,4958,4962,4968,4974,4981,4985,4989,4997],{"__ignoreMap":113},[118,4388,4389,4391],{"class":120,"line":121},[118,4390,2622],{"class":124},[118,4392,2649],{"class":557},[118,4394,4395],{"class":120,"line":142},[118,4396,3382],{"class":190},[118,4398,4399,4401,4403,4405,4407,4409,4411,4413,4415],{"class":120,"line":194},[118,4400,125],{"class":124},[118,4402,129],{"class":128},[118,4404,714],{"class":124},[118,4406,3393],{"class":135},[118,4408,213],{"class":128},[118,4410,714],{"class":124},[118,4412,3400],{"class":135},[118,4414,3702],{"class":124},[118,4416,3705],{"class":128},[118,4418,4419,4421],{"class":120,"line":224},[118,4420,714],{"class":124},[118,4422,2660],{"class":135},[118,4424,4425],{"class":120,"line":239},[118,4426,392],{"class":128},[118,4428,4429],{"class":120,"line":250},[118,4430,2669],{"class":124},[118,4432,4433,4435,4437,4439,4441,4443,4445,4447],{"class":120,"line":261},[118,4434,2674],{"class":135},[118,4436,203],{"class":128},[118,4438,3426],{"class":135},[118,4440,2682],{"class":209},[118,4442,213],{"class":128},[118,4444,3433],{"class":135},[118,4446,2689],{"class":209},[118,4448,386],{"class":128},[118,4450,4451],{"class":120,"line":267},[118,4452,1223],{"class":128},[118,4454,4455,4457,4459,4461],{"class":120,"line":272},[118,4456,2700],{"class":459},[118,4458,3448],{"class":128},[118,4460,233],{"class":124},[118,4462,2708],{"class":128},[118,4464,4465,4467,4469,4471],{"class":120,"line":278},[118,4466,2700],{"class":459},[118,4468,3459],{"class":128},[118,4470,233],{"class":124},[118,4472,2720],{"class":128},[118,4474,4475],{"class":120,"line":301},[118,4476,1354],{"class":128},[118,4478,4479,4481,4483],{"class":120,"line":313},[118,4480,2485],{"class":124},[118,4482,3474],{"class":135},[118,4484,441],{"class":128},[118,4486,4487],{"class":120,"line":322},[118,4488,1223],{"class":128},[118,4490,4491,4493,4495,4497,4499,4501,4503,4505,4507,4509,4511,4513,4515],{"class":120,"line":331},[118,4492,1424],{"class":128},[118,4494,554],{"class":124},[118,4496,3489],{"class":557},[118,4498,561],{"class":124},[118,4500,3494],{"class":459},[118,4502,3448],{"class":128},[118,4504,554],{"class":124},[118,4506,3501],{"class":557},[118,4508,561],{"class":124},[118,4510,3494],{"class":459},[118,4512,3459],{"class":128},[118,4514,554],{"class":124},[118,4516,568],{"class":128},[118,4518,4519],{"class":120,"line":336},[118,4520,1354],{"class":128},[118,4522,4523],{"class":120,"line":341},[118,4524,2669],{"class":124},[118,4526,4527],{"class":120,"line":347},[118,4528,3524],{"class":128},[118,4530,4531],{"class":120,"line":360},[118,4532,3529],{"class":128},[118,4534,4535],{"class":120,"line":389},[118,4536,2741],{"class":128},[118,4538,4539],{"class":120,"line":395},[118,4540,185],{"emptyLinePlaceholder":184},[118,4542,4543],{"class":120,"line":405},[118,4544,4545],{"class":190},"\u002F\u002F1、指定传入的类型\n",[118,4547,4548,4550,4553,4555,4557,4559,4561,4563,4565,4568,4570,4572],{"class":120,"line":414},[118,4549,197],{"class":124},[118,4551,4552],{"class":135}," printPerson1",[118,4554,203],{"class":128},[118,4556,2880],{"class":135},[118,4558,129],{"class":128},[118,4560,2679],{"class":135},[118,4562,213],{"class":128},[118,4564,537],{"class":124},[118,4566,4567],{"class":128},"> ",[118,4569,373],{"class":124},[118,4571,19],{"class":209},[118,4573,2141],{"class":128},[118,4575,4576],{"class":120,"line":423},[118,4577,392],{"class":128},[118,4579,4580,4582,4584],{"class":120,"line":428},[118,4581,3887],{"class":128},[118,4583,3589],{"class":135},[118,4585,626],{"class":128},[118,4587,4588],{"class":120,"line":433},[118,4589,264],{"class":128},[118,4591,4592,4594,4596],{"class":120,"line":444},[118,4593,197],{"class":124},[118,4595,438],{"class":135},[118,4597,441],{"class":128},[118,4599,4600],{"class":120,"line":449},[118,4601,392],{"class":128},[118,4603,4604,4606,4608,4610,4612,4615,4617,4619,4621,4623,4626],{"class":120,"line":466},[118,4605,3101],{"class":128},[118,4607,129],{"class":124},[118,4609,3563],{"class":128},[118,4611,537],{"class":124},[118,4613,4614],{"class":124}," >",[118,4616,19],{"class":135},[118,4618,203],{"class":128},[118,4620,3574],{"class":557},[118,4622,213],{"class":128},[118,4624,4625],{"class":459},"100",[118,4627,1511],{"class":128},[118,4629,4630,4633],{"class":120,"line":481},[118,4631,4632],{"class":135},"    printPerson1",[118,4634,4635],{"class":128},"(p);\n",[118,4637,4638],{"class":120,"line":487},[118,4639,264],{"class":128},[118,4641,4642],{"class":120,"line":493},[118,4643,185],{"emptyLinePlaceholder":184},[118,4645,4646],{"class":120,"line":498},[118,4647,4648],{"class":190},"\u002F\u002F2、参数模板化\n",[118,4650,4651,4653,4656,4658,4661,4663,4665,4668],{"class":120,"line":504},[118,4652,125],{"class":124},[118,4654,4655],{"class":128}," \u003C",[118,4657,714],{"class":124},[118,4659,4660],{"class":135}," T1",[118,4662,213],{"class":128},[118,4664,714],{"class":124},[118,4666,4667],{"class":135}," T2",[118,4669,139],{"class":128},[118,4671,4672,4674,4677,4679,4681,4683,4686,4688,4691,4693,4695,4697],{"class":120,"line":510},[118,4673,197],{"class":124},[118,4675,4676],{"class":135}," printPerson2",[118,4678,203],{"class":128},[118,4680,2880],{"class":135},[118,4682,129],{"class":128},[118,4684,4685],{"class":135},"T1",[118,4687,213],{"class":128},[118,4689,4690],{"class":135},"T2",[118,4692,1152],{"class":128},[118,4694,373],{"class":124},[118,4696,19],{"class":209},[118,4698,386],{"class":128},[118,4700,4701],{"class":120,"line":519},[118,4702,392],{"class":128},[118,4704,4705,4707,4709],{"class":120,"line":524},[118,4706,3887],{"class":128},[118,4708,3589],{"class":135},[118,4710,626],{"class":128},[118,4712,4713,4715,4717,4720,4722,4725,4728,4731,4734,4736],{"class":120,"line":530},[118,4714,551],{"class":128},[118,4716,554],{"class":124},[118,4718,4719],{"class":557}," \"T1的类型为： \"",[118,4721,561],{"class":124},[118,4723,4724],{"class":124}," typeid",[118,4726,4727],{"class":128},"(T1).",[118,4729,4730],{"class":135},"name",[118,4732,4733],{"class":128},"() ",[118,4735,554],{"class":124},[118,4737,568],{"class":128},[118,4739,4740,4742,4744,4747,4749,4751,4754,4756,4758,4760],{"class":120,"line":543},[118,4741,551],{"class":128},[118,4743,554],{"class":124},[118,4745,4746],{"class":557}," \"T2的类型为： \"",[118,4748,561],{"class":124},[118,4750,4724],{"class":124},[118,4752,4753],{"class":128},"(T2).",[118,4755,4730],{"class":135},[118,4757,4733],{"class":128},[118,4759,554],{"class":124},[118,4761,568],{"class":128},[118,4763,4764],{"class":120,"line":548},[118,4765,264],{"class":128},[118,4767,4768,4770,4772],{"class":120,"line":571},[118,4769,197],{"class":124},[118,4771,922],{"class":135},[118,4773,441],{"class":128},[118,4775,4776],{"class":120,"line":589},[118,4777,392],{"class":128},[118,4779,4780,4782,4784,4786,4788,4790,4792,4794,4796,4798,4801],{"class":120,"line":594},[118,4781,3101],{"class":128},[118,4783,129],{"class":124},[118,4785,3563],{"class":128},[118,4787,537],{"class":124},[118,4789,4614],{"class":124},[118,4791,19],{"class":135},[118,4793,203],{"class":128},[118,4795,3934],{"class":557},[118,4797,213],{"class":128},[118,4799,4800],{"class":459},"90",[118,4802,1511],{"class":128},[118,4804,4805,4808],{"class":120,"line":599},[118,4806,4807],{"class":135},"    printPerson2",[118,4809,4635],{"class":128},[118,4811,4812],{"class":120,"line":604},[118,4813,264],{"class":128},[118,4815,4816],{"class":120,"line":615},[118,4817,185],{"emptyLinePlaceholder":184},[118,4819,4820],{"class":120,"line":620},[118,4821,4822],{"class":190},"\u002F\u002F3、整个类模板化\n",[118,4824,4825,4827,4829,4831,4833],{"class":120,"line":629},[118,4826,125],{"class":124},[118,4828,129],{"class":128},[118,4830,714],{"class":124},[118,4832,136],{"class":135},[118,4834,139],{"class":128},[118,4836,4837,4839,4842,4844,4846,4848,4850],{"class":120,"line":634},[118,4838,197],{"class":124},[118,4840,4841],{"class":135}," printPerson3",[118,4843,203],{"class":128},[118,4845,370],{"class":135},[118,4847,1089],{"class":124},[118,4849,3929],{"class":209},[118,4851,386],{"class":128},[118,4853,4854],{"class":120,"line":639},[118,4855,392],{"class":128},[118,4857,4858,4860,4862,4865,4867,4869,4872,4874,4876,4878],{"class":120,"line":650},[118,4859,551],{"class":128},[118,4861,554],{"class":124},[118,4863,4864],{"class":557}," \"T的类型为： \"",[118,4866,561],{"class":124},[118,4868,4724],{"class":124},[118,4870,4871],{"class":128},"(T).",[118,4873,4730],{"class":135},[118,4875,4733],{"class":128},[118,4877,554],{"class":124},[118,4879,568],{"class":128},[118,4881,4882,4884,4886],{"class":120,"line":1612},[118,4883,3887],{"class":128},[118,4885,3589],{"class":135},[118,4887,626],{"class":128},[118,4889,4890],{"class":120,"line":1636},[118,4891,185],{"emptyLinePlaceholder":184},[118,4893,4894],{"class":120,"line":1644},[118,4895,264],{"class":128},[118,4897,4898,4900,4903],{"class":120,"line":1651},[118,4899,197],{"class":124},[118,4901,4902],{"class":135}," test03",[118,4904,441],{"class":128},[118,4906,4907],{"class":120,"line":1656},[118,4908,392],{"class":128},[118,4910,4911,4913,4915,4917,4919,4921,4923,4925,4928,4930,4933],{"class":120,"line":1661},[118,4912,3101],{"class":128},[118,4914,129],{"class":124},[118,4916,3563],{"class":128},[118,4918,537],{"class":124},[118,4920,4614],{"class":124},[118,4922,19],{"class":135},[118,4924,203],{"class":128},[118,4926,4927],{"class":557},"\"唐僧\"",[118,4929,213],{"class":128},[118,4931,4932],{"class":459},"30",[118,4934,1511],{"class":128},[118,4936,4937,4940],{"class":120,"line":1670},[118,4938,4939],{"class":135},"    printPerson3",[118,4941,4635],{"class":128},[118,4943,4944],{"class":120,"line":1675},[118,4945,264],{"class":128},[118,4947,4948],{"class":120,"line":1682},[118,4949,185],{"emptyLinePlaceholder":184},[118,4951,4952,4954,4956],{"class":120,"line":1689},[118,4953,537],{"class":124},[118,4955,609],{"class":135},[118,4957,612],{"class":128},[118,4959,4960],{"class":120,"line":1694},[118,4961,185],{"emptyLinePlaceholder":184},[118,4963,4964,4966],{"class":120,"line":1699},[118,4965,623],{"class":135},[118,4967,626],{"class":128},[118,4969,4970,4972],{"class":120,"line":1708},[118,4971,982],{"class":135},[118,4973,626],{"class":128},[118,4975,4976,4979],{"class":120,"line":3098},[118,4977,4978],{"class":135},"    test03",[118,4980,626],{"class":128},[118,4982,4983],{"class":120,"line":3118},[118,4984,185],{"emptyLinePlaceholder":184},[118,4986,4987],{"class":120,"line":3135},[118,4988,185],{"emptyLinePlaceholder":184},[118,4990,4991,4993,4995],{"class":120,"line":3141},[118,4992,642],{"class":124},[118,4994,645],{"class":459},[118,4996,463],{"class":128},[118,4998,4999],{"class":120,"line":3147},[118,5000,264],{"class":128},[19,5002,5003],{},[23,5004,1715],{},[108,5006,5009],{"className":5007,"code":5008,"language":662,"meta":113},[660],"name: 孙悟空 age: 100\nname: 猪八戒 age: 90\nT1的类型为： NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE\nT2的类型为： i\nT的类型为： 6PersonINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiE\nname: 唐僧 age: 30\n",[115,5010,5008],{"__ignoreMap":113},[19,5012,667],{},[62,5014,5015,5018],{},[65,5016,5017],{},"通过类模板创建的对象，可以有三种方式向函数中进行传参",[65,5019,5020],{},"使用比较广泛是第一种：指定传入的类型",[89,5022,5023],{"id":5023},"类模板与继承",[19,5025,5026],{},"当类模板碰到继承时，需要注意一下几点：",[62,5028,5029,5032,5035],{},[65,5030,5031],{},"当子类继承的父类是一个类模板时，子类在声明的时候，要指定出父类中T的类型",[65,5033,5034],{},"如果不指定，编译器无法给子类分配内存",[65,5036,5037],{},"如果想灵活指定出父类中T的类型，子类也需变为类模板",[19,5039,5040],{},[23,5041,174],{},[108,5043,5045],{"className":110,"code":5044,"language":112,"meta":113,"style":113},"template\u003Cclass T>\nclass Base\n{\n    T m;\n};\n\n\u002F\u002Fclass Son:public Base  \u002F\u002F错误，c++编译需要给子类分配内存，必须知道父类中T的类型才可以向下继承\nclass Son :public Base\u003Cint> \u002F\u002F必须指定一个类型\n{\n};\nvoid test01()\n{\n    Son c;\n}\n\n\u002F\u002F类模板继承类模板 ,可以用T2指定父类中的T类型\ntemplate\u003Cclass T1, class T2>\nclass Son2 :public Base\u003CT2>\n{\npublic:\n    Son2()\n    {\n        cout \u003C\u003C typeid(T1).name() \u003C\u003C endl;\n        cout \u003C\u003C typeid(T2).name() \u003C\u003C endl;\n    }\n};\n\nvoid test02()\n{\n    Son2\u003Cint, char> child1;\n}\n\nint main() {\n\n    test01();\n\n    test02();\n\n\n    return 0;\n}\n",[115,5046,5047,5059,5066,5070,5075,5079,5083,5091,5116,5120,5124,5132,5136,5141,5145,5149,5154,5172,5191,5195,5199,5206,5210,5228,5246,5250,5254,5258,5266,5270,5285,5289,5293,5301,5305,5311,5315,5321,5325,5329,5337],{"__ignoreMap":113},[118,5048,5049,5051,5053,5055,5057],{"class":120,"line":121},[118,5050,125],{"class":124},[118,5052,129],{"class":128},[118,5054,714],{"class":124},[118,5056,136],{"class":135},[118,5058,139],{"class":128},[118,5060,5061,5063],{"class":120,"line":142},[118,5062,714],{"class":124},[118,5064,5065],{"class":135}," Base\n",[118,5067,5068],{"class":120,"line":194},[118,5069,392],{"class":128},[118,5071,5072],{"class":120,"line":224},[118,5073,5074],{"class":128},"    T m;\n",[118,5076,5077],{"class":120,"line":239},[118,5078,2741],{"class":128},[118,5080,5081],{"class":120,"line":250},[118,5082,185],{"emptyLinePlaceholder":184},[118,5084,5085,5088],{"class":120,"line":261},[118,5086,5087],{"class":190},"\u002F\u002Fclass Son:public Base",[118,5089,5090],{"class":190},"  \u002F\u002F错误，c++编译需要给子类分配内存，必须知道父类中T的类型才可以向下继承\n",[118,5092,5093,5095,5098,5101,5104,5107,5109,5111,5113],{"class":120,"line":267},[118,5094,714],{"class":124},[118,5096,5097],{"class":135}," Son",[118,5099,5100],{"class":128}," :",[118,5102,5103],{"class":124},"public",[118,5105,5106],{"class":135}," Base",[118,5108,129],{"class":128},[118,5110,537],{"class":124},[118,5112,1152],{"class":128},[118,5114,5115],{"class":190}," \u002F\u002F必须指定一个类型\n",[118,5117,5118],{"class":120,"line":272},[118,5119,392],{"class":128},[118,5121,5122],{"class":120,"line":278},[118,5123,2741],{"class":128},[118,5125,5126,5128,5130],{"class":120,"line":301},[118,5127,197],{"class":124},[118,5129,438],{"class":135},[118,5131,441],{"class":128},[118,5133,5134],{"class":120,"line":313},[118,5135,392],{"class":128},[118,5137,5138],{"class":120,"line":322},[118,5139,5140],{"class":128},"    Son c;\n",[118,5142,5143],{"class":120,"line":331},[118,5144,264],{"class":128},[118,5146,5147],{"class":120,"line":336},[118,5148,185],{"emptyLinePlaceholder":184},[118,5150,5151],{"class":120,"line":341},[118,5152,5153],{"class":190},"\u002F\u002F类模板继承类模板 ,可以用T2指定父类中的T类型\n",[118,5155,5156,5158,5160,5162,5164,5166,5168,5170],{"class":120,"line":347},[118,5157,125],{"class":124},[118,5159,129],{"class":128},[118,5161,714],{"class":124},[118,5163,4660],{"class":135},[118,5165,213],{"class":128},[118,5167,714],{"class":124},[118,5169,4667],{"class":135},[118,5171,139],{"class":128},[118,5173,5174,5176,5179,5181,5183,5185,5187,5189],{"class":120,"line":360},[118,5175,714],{"class":124},[118,5177,5178],{"class":135}," Son2",[118,5180,5100],{"class":128},[118,5182,5103],{"class":124},[118,5184,5106],{"class":135},[118,5186,129],{"class":128},[118,5188,4690],{"class":135},[118,5190,139],{"class":128},[118,5192,5193],{"class":120,"line":389},[118,5194,392],{"class":128},[118,5196,5197],{"class":120,"line":395},[118,5198,2669],{"class":124},[118,5200,5201,5204],{"class":120,"line":405},[118,5202,5203],{"class":135},"    Son2",[118,5205,441],{"class":128},[118,5207,5208],{"class":120,"line":414},[118,5209,1223],{"class":128},[118,5211,5212,5214,5216,5218,5220,5222,5224,5226],{"class":120,"line":423},[118,5213,1424],{"class":128},[118,5215,554],{"class":124},[118,5217,4724],{"class":124},[118,5219,4727],{"class":128},[118,5221,4730],{"class":135},[118,5223,4733],{"class":128},[118,5225,554],{"class":124},[118,5227,568],{"class":128},[118,5229,5230,5232,5234,5236,5238,5240,5242,5244],{"class":120,"line":428},[118,5231,1424],{"class":128},[118,5233,554],{"class":124},[118,5235,4724],{"class":124},[118,5237,4753],{"class":128},[118,5239,4730],{"class":135},[118,5241,4733],{"class":128},[118,5243,554],{"class":124},[118,5245,568],{"class":128},[118,5247,5248],{"class":120,"line":433},[118,5249,1354],{"class":128},[118,5251,5252],{"class":120,"line":444},[118,5253,2741],{"class":128},[118,5255,5256],{"class":120,"line":449},[118,5257,185],{"emptyLinePlaceholder":184},[118,5259,5260,5262,5264],{"class":120,"line":466},[118,5261,197],{"class":124},[118,5263,922],{"class":135},[118,5265,441],{"class":128},[118,5267,5268],{"class":120,"line":481},[118,5269,392],{"class":128},[118,5271,5272,5274,5277,5279,5282],{"class":120,"line":487},[118,5273,5203],{"class":128},[118,5275,5276],{"class":124},"\u003Cint",[118,5278,213],{"class":128},[118,5280,5281],{"class":124},"char>",[118,5283,5284],{"class":128}," child1;\n",[118,5286,5287],{"class":120,"line":493},[118,5288,264],{"class":128},[118,5290,5291],{"class":120,"line":498},[118,5292,185],{"emptyLinePlaceholder":184},[118,5294,5295,5297,5299],{"class":120,"line":504},[118,5296,537],{"class":124},[118,5298,609],{"class":135},[118,5300,612],{"class":128},[118,5302,5303],{"class":120,"line":510},[118,5304,185],{"emptyLinePlaceholder":184},[118,5306,5307,5309],{"class":120,"line":519},[118,5308,623],{"class":135},[118,5310,626],{"class":128},[118,5312,5313],{"class":120,"line":524},[118,5314,185],{"emptyLinePlaceholder":184},[118,5316,5317,5319],{"class":120,"line":530},[118,5318,982],{"class":135},[118,5320,626],{"class":128},[118,5322,5323],{"class":120,"line":543},[118,5324,185],{"emptyLinePlaceholder":184},[118,5326,5327],{"class":120,"line":548},[118,5328,185],{"emptyLinePlaceholder":184},[118,5330,5331,5333,5335],{"class":120,"line":571},[118,5332,642],{"class":124},[118,5334,645],{"class":459},[118,5336,463],{"class":128},[118,5338,5339],{"class":120,"line":589},[118,5340,264],{"class":128},[19,5342,5343],{},[23,5344,1715],{},[108,5346,5349],{"className":5347,"code":5348,"language":662,"meta":113},[660],"i\nc\n",[115,5350,5348],{"__ignoreMap":113},[19,5352,5353],{},"总结：如果父类是类模板，子类需要指定出父类中T的数据类型",[89,5355,5356],{"id":5356},"类模板成员函数类外实现",[19,5358,5359],{},"学习目标：能够掌握类模板中的成员函数类外实现",[19,5361,5362],{},[23,5363,174],{},[108,5365,5367],{"className":110,"code":5366,"language":112,"meta":113,"style":113},"#include \u003Cstring>\n\n\u002F\u002F类模板中成员函数类外实现\ntemplate\u003Cclass T1, class T2>\nclass Person {\npublic:\n    \u002F\u002F成员函数类内声明\n    Person(T1 name, T2 age);\n    void showPerson();\n\npublic:\n    T1 m_Name;\n    T2 m_Age;\n};\n\n\u002F\u002F构造函数 类外实现\ntemplate\u003Cclass T1, class T2>\nPerson\u003CT1, T2>::Person(T1 name, T2 age) {\n    this->m_Name = name;\n    this->m_Age = age;\n}\n\n\u002F\u002F成员函数 类外实现\ntemplate\u003Cclass T1, class T2>\nvoid Person\u003CT1, T2>::showPerson() {\n    cout \u003C\u003C \"姓名: \" \u003C\u003C this->m_Name \u003C\u003C \" 年龄:\" \u003C\u003C this->m_Age \u003C\u003C endl;\n}\n\nvoid test01()\n{\n    Person\u003Cstring, int> p(\"Tom\", 20);\n    p.showPerson();\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,5368,5369,5375,5379,5384,5402,5412,5416,5421,5439,5447,5451,5455,5460,5465,5469,5473,5478,5496,5516,5527,5537,5541,5545,5550,5568,5588,5618,5622,5626,5634,5638,5661,5669,5673,5677,5685,5689,5695,5699,5703,5711],{"__ignoreMap":113},[118,5370,5371,5373],{"class":120,"line":121},[118,5372,2622],{"class":124},[118,5374,2649],{"class":557},[118,5376,5377],{"class":120,"line":142},[118,5378,185],{"emptyLinePlaceholder":184},[118,5380,5381],{"class":120,"line":194},[118,5382,5383],{"class":190},"\u002F\u002F类模板中成员函数类外实现\n",[118,5385,5386,5388,5390,5392,5394,5396,5398,5400],{"class":120,"line":224},[118,5387,125],{"class":124},[118,5389,129],{"class":128},[118,5391,714],{"class":124},[118,5393,4660],{"class":135},[118,5395,213],{"class":128},[118,5397,714],{"class":124},[118,5399,4667],{"class":135},[118,5401,139],{"class":128},[118,5403,5404,5406,5409],{"class":120,"line":239},[118,5405,714],{"class":124},[118,5407,5408],{"class":135}," Person",[118,5410,5411],{"class":128}," {\n",[118,5413,5414],{"class":120,"line":250},[118,5415,2669],{"class":124},[118,5417,5418],{"class":120,"line":261},[118,5419,5420],{"class":190},"    \u002F\u002F成员函数类内声明\n",[118,5422,5423,5425,5427,5429,5431,5433,5435,5437],{"class":120,"line":267},[118,5424,2674],{"class":135},[118,5426,203],{"class":128},[118,5428,4685],{"class":135},[118,5430,2682],{"class":209},[118,5432,213],{"class":128},[118,5434,4690],{"class":135},[118,5436,2689],{"class":209},[118,5438,1511],{"class":128},[118,5440,5441,5443,5445],{"class":120,"line":272},[118,5442,2485],{"class":124},[118,5444,3474],{"class":135},[118,5446,626],{"class":128},[118,5448,5449],{"class":120,"line":278},[118,5450,185],{"emptyLinePlaceholder":184},[118,5452,5453],{"class":120,"line":301},[118,5454,2669],{"class":124},[118,5456,5457],{"class":120,"line":313},[118,5458,5459],{"class":128},"    T1 m_Name;\n",[118,5461,5462],{"class":120,"line":322},[118,5463,5464],{"class":128},"    T2 m_Age;\n",[118,5466,5467],{"class":120,"line":331},[118,5468,2741],{"class":128},[118,5470,5471],{"class":120,"line":336},[118,5472,185],{"emptyLinePlaceholder":184},[118,5474,5475],{"class":120,"line":341},[118,5476,5477],{"class":190},"\u002F\u002F构造函数 类外实现\n",[118,5479,5480,5482,5484,5486,5488,5490,5492,5494],{"class":120,"line":347},[118,5481,125],{"class":124},[118,5483,129],{"class":128},[118,5485,714],{"class":124},[118,5487,4660],{"class":135},[118,5489,213],{"class":128},[118,5491,714],{"class":124},[118,5493,4667],{"class":135},[118,5495,139],{"class":128},[118,5497,5498,5500,5502,5504,5506,5508,5511,5513],{"class":120,"line":360},[118,5499,2880],{"class":135},[118,5501,129],{"class":128},[118,5503,4685],{"class":135},[118,5505,213],{"class":128},[118,5507,4690],{"class":135},[118,5509,5510],{"class":128},">::",[118,5512,2880],{"class":135},[118,5514,5515],{"class":128},"(T1 name, T2 age) {\n",[118,5517,5518,5521,5523,5525],{"class":120,"line":389},[118,5519,5520],{"class":459},"    this",[118,5522,2703],{"class":128},[118,5524,233],{"class":124},[118,5526,2708],{"class":128},[118,5528,5529,5531,5533,5535],{"class":120,"line":395},[118,5530,5520],{"class":459},[118,5532,2715],{"class":128},[118,5534,233],{"class":124},[118,5536,2720],{"class":128},[118,5538,5539],{"class":120,"line":405},[118,5540,264],{"class":128},[118,5542,5543],{"class":120,"line":414},[118,5544,185],{"emptyLinePlaceholder":184},[118,5546,5547],{"class":120,"line":423},[118,5548,5549],{"class":190},"\u002F\u002F成员函数 类外实现\n",[118,5551,5552,5554,5556,5558,5560,5562,5564,5566],{"class":120,"line":428},[118,5553,125],{"class":124},[118,5555,129],{"class":128},[118,5557,714],{"class":124},[118,5559,4660],{"class":135},[118,5561,213],{"class":128},[118,5563,714],{"class":124},[118,5565,4667],{"class":135},[118,5567,139],{"class":128},[118,5569,5570,5572,5574,5576,5578,5580,5582,5584,5586],{"class":120,"line":433},[118,5571,197],{"class":124},[118,5573,5408],{"class":135},[118,5575,129],{"class":128},[118,5577,4685],{"class":135},[118,5579,213],{"class":128},[118,5581,4690],{"class":135},[118,5583,5510],{"class":128},[118,5585,3589],{"class":135},[118,5587,612],{"class":128},[118,5589,5590,5592,5594,5597,5599,5601,5603,5605,5608,5610,5612,5614,5616],{"class":120,"line":444},[118,5591,551],{"class":128},[118,5593,554],{"class":124},[118,5595,5596],{"class":557}," \"姓名: \"",[118,5598,561],{"class":124},[118,5600,3494],{"class":459},[118,5602,2703],{"class":128},[118,5604,554],{"class":124},[118,5606,5607],{"class":557}," \" 年龄:\"",[118,5609,561],{"class":124},[118,5611,3494],{"class":459},[118,5613,2715],{"class":128},[118,5615,554],{"class":124},[118,5617,568],{"class":128},[118,5619,5620],{"class":120,"line":449},[118,5621,264],{"class":128},[118,5623,5624],{"class":120,"line":466},[118,5625,185],{"emptyLinePlaceholder":184},[118,5627,5628,5630,5632],{"class":120,"line":481},[118,5629,197],{"class":124},[118,5631,438],{"class":135},[118,5633,441],{"class":128},[118,5635,5636],{"class":120,"line":487},[118,5637,392],{"class":128},[118,5639,5640,5642,5644,5646,5648,5650,5652,5654,5656,5659],{"class":120,"line":493},[118,5641,2674],{"class":128},[118,5643,129],{"class":124},[118,5645,3563],{"class":128},[118,5647,3566],{"class":124},[118,5649,3929],{"class":135},[118,5651,203],{"class":128},[118,5653,3108],{"class":557},[118,5655,213],{"class":128},[118,5657,5658],{"class":459},"20",[118,5660,1511],{"class":128},[118,5662,5663,5665,5667],{"class":120,"line":498},[118,5664,3887],{"class":128},[118,5666,3589],{"class":135},[118,5668,626],{"class":128},[118,5670,5671],{"class":120,"line":504},[118,5672,264],{"class":128},[118,5674,5675],{"class":120,"line":510},[118,5676,185],{"emptyLinePlaceholder":184},[118,5678,5679,5681,5683],{"class":120,"line":519},[118,5680,537],{"class":124},[118,5682,609],{"class":135},[118,5684,612],{"class":128},[118,5686,5687],{"class":120,"line":524},[118,5688,185],{"emptyLinePlaceholder":184},[118,5690,5691,5693],{"class":120,"line":530},[118,5692,623],{"class":135},[118,5694,626],{"class":128},[118,5696,5697],{"class":120,"line":543},[118,5698,185],{"emptyLinePlaceholder":184},[118,5700,5701],{"class":120,"line":548},[118,5702,185],{"emptyLinePlaceholder":184},[118,5704,5705,5707,5709],{"class":120,"line":571},[118,5706,642],{"class":124},[118,5708,645],{"class":459},[118,5710,463],{"class":128},[118,5712,5713],{"class":120,"line":589},[118,5714,264],{"class":128},[19,5716,5717],{},[23,5718,150],{},[108,5720,5723],{"className":5721,"code":5722,"language":662,"meta":113},[660],"姓名: Tom 年龄:20\n",[115,5724,5722],{"__ignoreMap":113},[19,5726,5727],{},"总结：类模板中成员函数类外实现时，需要加上模板参数列表",[89,5729,5730],{"id":5730},"类模板分文件编写",[19,5732,4358],{},[62,5734,5735],{},[65,5736,5737],{},"掌握类模板成员函数分文件编写产生的问题以及解决方式",[19,5739,5740],{},"问题：",[62,5742,5743],{},[65,5744,5745],{},"类模板中成员函数创建时机是在调用阶段，导致分文件编写时链接不到",[19,5747,5748],{},"解决：",[62,5750,5751,5754],{},[65,5752,5753],{},"解决方式1：直接包含.cpp源文件",[65,5755,5756],{},"解决方式2：将声明和实现写到同一个文件中，并更改后缀名为.hpp，hpp是约定的名称，并不是强制",[19,5758,5759],{},[23,5760,174],{},[19,5762,5763],{},"person.hpp中代码：",[108,5765,5767],{"className":110,"code":5766,"language":112,"meta":113,"style":113},"#pragma once\n#include \u003Ciostream>\nusing namespace std;\n#include \u003Cstring>\n\ntemplate\u003Cclass T1, class T2>\nclass Person {\npublic:\n    Person(T1 name, T2 age);\n    void showPerson();\npublic:\n    T1 m_Name;\n    T2 m_Age;\n};\n\n\u002F\u002F构造函数 类外实现\ntemplate\u003Cclass T1, class T2>\nPerson\u003CT1, T2>::Person(T1 name, T2 age) {\n    this->m_Name = name;\n    this->m_Age = age;\n}\n\n\u002F\u002F成员函数 类外实现\ntemplate\u003Cclass T1, class T2>\nvoid Person\u003CT1, T2>::showPerson() {\n    cout \u003C\u003C \"姓名: \" \u003C\u003C this->m_Name \u003C\u003C \" 年龄:\" \u003C\u003C this->m_Age \u003C\u003C endl;\n}\n",[115,5768,5769,5777,5784,5794,5800,5804,5822,5830,5834,5852,5860,5864,5868,5872,5876,5880,5884,5902,5920,5930,5940,5944,5948,5952,5970,5990,6018],{"__ignoreMap":113},[118,5770,5771,5774],{"class":120,"line":121},[118,5772,5773],{"class":124},"#pragma",[118,5775,5776],{"class":135}," once\n",[118,5778,5779,5781],{"class":120,"line":142},[118,5780,2622],{"class":124},[118,5782,5783],{"class":557}," \u003Ciostream>\n",[118,5785,5786,5788,5790,5792],{"class":120,"line":194},[118,5787,2630],{"class":124},[118,5789,2633],{"class":124},[118,5791,2636],{"class":135},[118,5793,463],{"class":128},[118,5795,5796,5798],{"class":120,"line":224},[118,5797,2622],{"class":124},[118,5799,2649],{"class":557},[118,5801,5802],{"class":120,"line":239},[118,5803,185],{"emptyLinePlaceholder":184},[118,5805,5806,5808,5810,5812,5814,5816,5818,5820],{"class":120,"line":250},[118,5807,125],{"class":124},[118,5809,129],{"class":128},[118,5811,714],{"class":124},[118,5813,4660],{"class":135},[118,5815,213],{"class":128},[118,5817,714],{"class":124},[118,5819,4667],{"class":135},[118,5821,139],{"class":128},[118,5823,5824,5826,5828],{"class":120,"line":261},[118,5825,714],{"class":124},[118,5827,5408],{"class":135},[118,5829,5411],{"class":128},[118,5831,5832],{"class":120,"line":267},[118,5833,2669],{"class":124},[118,5835,5836,5838,5840,5842,5844,5846,5848,5850],{"class":120,"line":272},[118,5837,2674],{"class":135},[118,5839,203],{"class":128},[118,5841,4685],{"class":135},[118,5843,2682],{"class":209},[118,5845,213],{"class":128},[118,5847,4690],{"class":135},[118,5849,2689],{"class":209},[118,5851,1511],{"class":128},[118,5853,5854,5856,5858],{"class":120,"line":278},[118,5855,2485],{"class":124},[118,5857,3474],{"class":135},[118,5859,626],{"class":128},[118,5861,5862],{"class":120,"line":301},[118,5863,2669],{"class":124},[118,5865,5866],{"class":120,"line":313},[118,5867,5459],{"class":128},[118,5869,5870],{"class":120,"line":322},[118,5871,5464],{"class":128},[118,5873,5874],{"class":120,"line":331},[118,5875,2741],{"class":128},[118,5877,5878],{"class":120,"line":336},[118,5879,185],{"emptyLinePlaceholder":184},[118,5881,5882],{"class":120,"line":341},[118,5883,5477],{"class":190},[118,5885,5886,5888,5890,5892,5894,5896,5898,5900],{"class":120,"line":347},[118,5887,125],{"class":124},[118,5889,129],{"class":128},[118,5891,714],{"class":124},[118,5893,4660],{"class":135},[118,5895,213],{"class":128},[118,5897,714],{"class":124},[118,5899,4667],{"class":135},[118,5901,139],{"class":128},[118,5903,5904,5906,5908,5910,5912,5914,5916,5918],{"class":120,"line":360},[118,5905,2880],{"class":135},[118,5907,129],{"class":128},[118,5909,4685],{"class":135},[118,5911,213],{"class":128},[118,5913,4690],{"class":135},[118,5915,5510],{"class":128},[118,5917,2880],{"class":135},[118,5919,5515],{"class":128},[118,5921,5922,5924,5926,5928],{"class":120,"line":389},[118,5923,5520],{"class":459},[118,5925,2703],{"class":128},[118,5927,233],{"class":124},[118,5929,2708],{"class":128},[118,5931,5932,5934,5936,5938],{"class":120,"line":395},[118,5933,5520],{"class":459},[118,5935,2715],{"class":128},[118,5937,233],{"class":124},[118,5939,2720],{"class":128},[118,5941,5942],{"class":120,"line":405},[118,5943,264],{"class":128},[118,5945,5946],{"class":120,"line":414},[118,5947,185],{"emptyLinePlaceholder":184},[118,5949,5950],{"class":120,"line":423},[118,5951,5549],{"class":190},[118,5953,5954,5956,5958,5960,5962,5964,5966,5968],{"class":120,"line":428},[118,5955,125],{"class":124},[118,5957,129],{"class":128},[118,5959,714],{"class":124},[118,5961,4660],{"class":135},[118,5963,213],{"class":128},[118,5965,714],{"class":124},[118,5967,4667],{"class":135},[118,5969,139],{"class":128},[118,5971,5972,5974,5976,5978,5980,5982,5984,5986,5988],{"class":120,"line":433},[118,5973,197],{"class":124},[118,5975,5408],{"class":135},[118,5977,129],{"class":128},[118,5979,4685],{"class":135},[118,5981,213],{"class":128},[118,5983,4690],{"class":135},[118,5985,5510],{"class":128},[118,5987,3589],{"class":135},[118,5989,612],{"class":128},[118,5991,5992,5994,5996,5998,6000,6002,6004,6006,6008,6010,6012,6014,6016],{"class":120,"line":444},[118,5993,551],{"class":128},[118,5995,554],{"class":124},[118,5997,5596],{"class":557},[118,5999,561],{"class":124},[118,6001,3494],{"class":459},[118,6003,2703],{"class":128},[118,6005,554],{"class":124},[118,6007,5607],{"class":557},[118,6009,561],{"class":124},[118,6011,3494],{"class":459},[118,6013,2715],{"class":128},[118,6015,554],{"class":124},[118,6017,568],{"class":128},[118,6019,6020],{"class":120,"line":449},[118,6021,264],{"class":128},[19,6023,6024,151,6026,155],{},[23,6025,150],{},[115,6027,154],{},[19,6029,6030],{},"类模板分文件编写.cpp中代码",[108,6032,6034],{"className":110,"code":6033,"language":112,"meta":113,"style":113},"#include\u003Ciostream>\nusing namespace std;\n\n\u002F\u002F#include \"person.h\"\n#include \"person.cpp\" \u002F\u002F解决方式1，包含cpp源文件\n\n\u002F\u002F解决方式2，将声明和实现写到一起，文件后缀名改为.hpp\n#include \"person.hpp\"\nvoid test01()\n{\n    Person\u003Cstring, int> p(\"Tom\", 10);\n    p.showPerson();\n}\n\nint main() {\n\n    test01();\n\n\n    return 0;\n}\n",[115,6035,6036,6042,6052,6056,6061,6071,6075,6080,6087,6095,6099,6121,6129,6133,6137,6145,6149,6155,6159,6163,6171],{"__ignoreMap":113},[118,6037,6038,6040],{"class":120,"line":121},[118,6039,2622],{"class":124},[118,6041,2625],{"class":557},[118,6043,6044,6046,6048,6050],{"class":120,"line":142},[118,6045,2630],{"class":124},[118,6047,2633],{"class":124},[118,6049,2636],{"class":135},[118,6051,463],{"class":128},[118,6053,6054],{"class":120,"line":194},[118,6055,185],{"emptyLinePlaceholder":184},[118,6057,6058],{"class":120,"line":224},[118,6059,6060],{"class":190},"\u002F\u002F#include \"person.h\"\n",[118,6062,6063,6065,6068],{"class":120,"line":239},[118,6064,2622],{"class":124},[118,6066,6067],{"class":557}," \"person.cpp\"",[118,6069,6070],{"class":190}," \u002F\u002F解决方式1，包含cpp源文件\n",[118,6072,6073],{"class":120,"line":250},[118,6074,185],{"emptyLinePlaceholder":184},[118,6076,6077],{"class":120,"line":261},[118,6078,6079],{"class":190},"\u002F\u002F解决方式2，将声明和实现写到一起，文件后缀名改为.hpp\n",[118,6081,6082,6084],{"class":120,"line":267},[118,6083,2622],{"class":124},[118,6085,6086],{"class":557}," \"person.hpp\"\n",[118,6088,6089,6091,6093],{"class":120,"line":272},[118,6090,197],{"class":124},[118,6092,438],{"class":135},[118,6094,441],{"class":128},[118,6096,6097],{"class":120,"line":278},[118,6098,392],{"class":128},[118,6100,6101,6103,6105,6107,6109,6111,6113,6115,6117,6119],{"class":120,"line":301},[118,6102,2674],{"class":128},[118,6104,129],{"class":124},[118,6106,3563],{"class":128},[118,6108,3566],{"class":124},[118,6110,3929],{"class":135},[118,6112,203],{"class":128},[118,6114,3108],{"class":557},[118,6116,213],{"class":128},[118,6118,3113],{"class":459},[118,6120,1511],{"class":128},[118,6122,6123,6125,6127],{"class":120,"line":313},[118,6124,3887],{"class":128},[118,6126,3589],{"class":135},[118,6128,626],{"class":128},[118,6130,6131],{"class":120,"line":322},[118,6132,264],{"class":128},[118,6134,6135],{"class":120,"line":331},[118,6136,185],{"emptyLinePlaceholder":184},[118,6138,6139,6141,6143],{"class":120,"line":336},[118,6140,537],{"class":124},[118,6142,609],{"class":135},[118,6144,612],{"class":128},[118,6146,6147],{"class":120,"line":341},[118,6148,185],{"emptyLinePlaceholder":184},[118,6150,6151,6153],{"class":120,"line":347},[118,6152,623],{"class":135},[118,6154,626],{"class":128},[118,6156,6157],{"class":120,"line":360},[118,6158,185],{"emptyLinePlaceholder":184},[118,6160,6161],{"class":120,"line":389},[118,6162,185],{"emptyLinePlaceholder":184},[118,6164,6165,6167,6169],{"class":120,"line":395},[118,6166,642],{"class":124},[118,6168,645],{"class":459},[118,6170,463],{"class":128},[118,6172,6173],{"class":120,"line":405},[118,6174,264],{"class":128},[19,6176,6177,6179,6180,6183],{},[23,6178,150],{}," 该代码块依赖同一示例中的 ",[115,6181,6182],{},"person.cpp","，不能单独编译；与前面的类模板实现文件一起构建后，本段自身没有终端输出。",[19,6185,6186],{},"总结：主流的解决方式是第二种，将类模板成员函数写到一起，并将后缀名改为.hpp",[89,6188,6189],{"id":6189},"类模板与友元",[19,6191,4358],{},[62,6193,6194],{},[65,6195,6196],{},"掌握类模板配合友元函数的类内和类外实现",[19,6198,6199],{},"全局函数类内实现 - 直接在类内声明友元即可",[19,6201,6202],{},"全局函数类外实现 - 需要提前让编译器知道全局函数的存在",[19,6204,6205],{},[23,6206,174],{},[108,6208,6210],{"className":110,"code":6209,"language":112,"meta":113,"style":113},"#include \u003Cstring>\n\n\u002F\u002F2、全局函数配合友元  类外实现 - 先做函数模板声明，下方在做函数模板定义，在做友元\ntemplate\u003Cclass T1, class T2> class Person;\n\n\u002F\u002F如果声明了函数模板，可以将实现写到后面，否则需要将实现体写到类的前面让编译器提前看到\n\u002F\u002Ftemplate\u003Cclass T1, class T2> void printPerson2(Person\u003CT1, T2> & p); \n\ntemplate\u003Cclass T1, class T2>\nvoid printPerson2(Person\u003CT1, T2> & p)\n{\n    cout \u003C\u003C \"类外实现 ---- 姓名： \" \u003C\u003C p.m_Name \u003C\u003C \" 年龄：\" \u003C\u003C p.m_Age \u003C\u003C endl;\n}\n\ntemplate\u003Cclass T1, class T2>\nclass Person\n{\n    \u002F\u002F1、全局函数配合友元   类内实现\n    friend void printPerson(Person\u003CT1, T2> & p)\n    {\n        cout \u003C\u003C \"姓名： \" \u003C\u003C p.m_Name \u003C\u003C \" 年龄：\" \u003C\u003C p.m_Age \u003C\u003C endl;\n    }\n\n    \u002F\u002F全局函数配合友元  类外实现\n    friend void printPerson2\u003C>(Person\u003CT1, T2> & p);\n\npublic:\n\n    Person(T1 name, T2 age)\n    {\n        this->m_Name = name;\n        this->m_Age = age;\n    }\n\nprivate:\n    T1 m_Name;\n    T2 m_Age;\n\n};\n\n\u002F\u002F1、全局函数在类内实现\nvoid test01()\n{\n    Person \u003Cstring, int >p(\"Tom\", 20);\n    printPerson(p);\n}\n\n\u002F\u002F2、全局函数在类外实现\nvoid test02()\n{\n    Person \u003Cstring, int >p(\"Jerry\", 30);\n    printPerson2(p);\n}\n\nint main() {\n\n    \u002F\u002Ftest01();\n\n    test02();\n\n\n    return 0;\n}\n",[115,6211,6212,6218,6222,6227,6251,6255,6260,6265,6269,6287,6313,6317,6345,6349,6353,6371,6377,6381,6386,6417,6421,6446,6450,6454,6459,6482,6486,6490,6494,6512,6516,6526,6536,6540,6544,6549,6553,6557,6561,6565,6569,6574,6582,6586,6610,6617,6621,6625,6630,6638,6642,6667,6673,6677,6681,6689,6693,6698,6702,6708,6712,6716,6724],{"__ignoreMap":113},[118,6213,6214,6216],{"class":120,"line":121},[118,6215,2622],{"class":124},[118,6217,2649],{"class":557},[118,6219,6220],{"class":120,"line":142},[118,6221,185],{"emptyLinePlaceholder":184},[118,6223,6224],{"class":120,"line":194},[118,6225,6226],{"class":190},"\u002F\u002F2、全局函数配合友元  类外实现 - 先做函数模板声明，下方在做函数模板定义，在做友元\n",[118,6228,6229,6231,6233,6235,6237,6239,6241,6243,6245,6247,6249],{"class":120,"line":224},[118,6230,125],{"class":124},[118,6232,129],{"class":128},[118,6234,714],{"class":124},[118,6236,4660],{"class":135},[118,6238,213],{"class":128},[118,6240,714],{"class":124},[118,6242,4667],{"class":135},[118,6244,4567],{"class":128},[118,6246,714],{"class":124},[118,6248,5408],{"class":135},[118,6250,463],{"class":128},[118,6252,6253],{"class":120,"line":239},[118,6254,185],{"emptyLinePlaceholder":184},[118,6256,6257],{"class":120,"line":250},[118,6258,6259],{"class":190},"\u002F\u002F如果声明了函数模板，可以将实现写到后面，否则需要将实现体写到类的前面让编译器提前看到\n",[118,6261,6262],{"class":120,"line":261},[118,6263,6264],{"class":190},"\u002F\u002Ftemplate\u003Cclass T1, class T2> void printPerson2(Person\u003CT1, T2> & p); \n",[118,6266,6267],{"class":120,"line":267},[118,6268,185],{"emptyLinePlaceholder":184},[118,6270,6271,6273,6275,6277,6279,6281,6283,6285],{"class":120,"line":272},[118,6272,125],{"class":124},[118,6274,129],{"class":128},[118,6276,714],{"class":124},[118,6278,4660],{"class":135},[118,6280,213],{"class":128},[118,6282,714],{"class":124},[118,6284,4667],{"class":135},[118,6286,139],{"class":128},[118,6288,6289,6291,6293,6295,6297,6299,6301,6303,6305,6307,6309,6311],{"class":120,"line":278},[118,6290,197],{"class":124},[118,6292,4676],{"class":135},[118,6294,203],{"class":128},[118,6296,2880],{"class":135},[118,6298,129],{"class":128},[118,6300,4685],{"class":135},[118,6302,213],{"class":128},[118,6304,4690],{"class":135},[118,6306,4567],{"class":128},[118,6308,373],{"class":124},[118,6310,3929],{"class":209},[118,6312,386],{"class":128},[118,6314,6315],{"class":120,"line":301},[118,6316,392],{"class":128},[118,6318,6319,6321,6323,6326,6328,6331,6333,6336,6338,6341,6343],{"class":120,"line":313},[118,6320,551],{"class":128},[118,6322,554],{"class":124},[118,6324,6325],{"class":557}," \"类外实现 ---- 姓名： \"",[118,6327,561],{"class":124},[118,6329,6330],{"class":128}," p.m_Name ",[118,6332,554],{"class":124},[118,6334,6335],{"class":557}," \" 年龄：\"",[118,6337,561],{"class":124},[118,6339,6340],{"class":128}," p.m_Age ",[118,6342,554],{"class":124},[118,6344,568],{"class":128},[118,6346,6347],{"class":120,"line":322},[118,6348,264],{"class":128},[118,6350,6351],{"class":120,"line":331},[118,6352,185],{"emptyLinePlaceholder":184},[118,6354,6355,6357,6359,6361,6363,6365,6367,6369],{"class":120,"line":336},[118,6356,125],{"class":124},[118,6358,129],{"class":128},[118,6360,714],{"class":124},[118,6362,4660],{"class":135},[118,6364,213],{"class":128},[118,6366,714],{"class":124},[118,6368,4667],{"class":135},[118,6370,139],{"class":128},[118,6372,6373,6375],{"class":120,"line":341},[118,6374,714],{"class":124},[118,6376,2660],{"class":135},[118,6378,6379],{"class":120,"line":347},[118,6380,392],{"class":128},[118,6382,6383],{"class":120,"line":360},[118,6384,6385],{"class":190},"    \u002F\u002F1、全局函数配合友元   类内实现\n",[118,6387,6388,6391,6394,6397,6399,6401,6403,6405,6407,6409,6411,6413,6415],{"class":120,"line":389},[118,6389,6390],{"class":124},"    friend",[118,6392,6393],{"class":124}," void",[118,6395,6396],{"class":135}," printPerson",[118,6398,203],{"class":128},[118,6400,2880],{"class":135},[118,6402,129],{"class":128},[118,6404,4685],{"class":135},[118,6406,213],{"class":128},[118,6408,4690],{"class":135},[118,6410,4567],{"class":128},[118,6412,373],{"class":124},[118,6414,3929],{"class":209},[118,6416,386],{"class":128},[118,6418,6419],{"class":120,"line":395},[118,6420,1223],{"class":128},[118,6422,6423,6425,6427,6430,6432,6434,6436,6438,6440,6442,6444],{"class":120,"line":405},[118,6424,1424],{"class":128},[118,6426,554],{"class":124},[118,6428,6429],{"class":557}," \"姓名： \"",[118,6431,561],{"class":124},[118,6433,6330],{"class":128},[118,6435,554],{"class":124},[118,6437,6335],{"class":557},[118,6439,561],{"class":124},[118,6441,6340],{"class":128},[118,6443,554],{"class":124},[118,6445,568],{"class":128},[118,6447,6448],{"class":120,"line":414},[118,6449,1354],{"class":128},[118,6451,6452],{"class":120,"line":423},[118,6453,185],{"emptyLinePlaceholder":184},[118,6455,6456],{"class":120,"line":428},[118,6457,6458],{"class":190},"    \u002F\u002F全局函数配合友元  类外实现\n",[118,6460,6461,6463,6465,6467,6470,6472,6475,6477,6479],{"class":120,"line":433},[118,6462,6390],{"class":124},[118,6464,6393],{"class":124},[118,6466,4676],{"class":135},[118,6468,6469],{"class":128},"\u003C>(Person",[118,6471,129],{"class":124},[118,6473,6474],{"class":128},"T1, T2",[118,6476,1152],{"class":124},[118,6478,1089],{"class":124},[118,6480,6481],{"class":128}," p);\n",[118,6483,6484],{"class":120,"line":444},[118,6485,185],{"emptyLinePlaceholder":184},[118,6487,6488],{"class":120,"line":449},[118,6489,2669],{"class":124},[118,6491,6492],{"class":120,"line":466},[118,6493,185],{"emptyLinePlaceholder":184},[118,6495,6496,6498,6500,6502,6504,6506,6508,6510],{"class":120,"line":481},[118,6497,2674],{"class":135},[118,6499,203],{"class":128},[118,6501,4685],{"class":135},[118,6503,2682],{"class":209},[118,6505,213],{"class":128},[118,6507,4690],{"class":135},[118,6509,2689],{"class":209},[118,6511,386],{"class":128},[118,6513,6514],{"class":120,"line":487},[118,6515,1223],{"class":128},[118,6517,6518,6520,6522,6524],{"class":120,"line":493},[118,6519,2700],{"class":459},[118,6521,2703],{"class":128},[118,6523,233],{"class":124},[118,6525,2708],{"class":128},[118,6527,6528,6530,6532,6534],{"class":120,"line":498},[118,6529,2700],{"class":459},[118,6531,2715],{"class":128},[118,6533,233],{"class":124},[118,6535,2720],{"class":128},[118,6537,6538],{"class":120,"line":504},[118,6539,1354],{"class":128},[118,6541,6542],{"class":120,"line":510},[118,6543,185],{"emptyLinePlaceholder":184},[118,6545,6546],{"class":120,"line":519},[118,6547,6548],{"class":124},"private:\n",[118,6550,6551],{"class":120,"line":524},[118,6552,5459],{"class":128},[118,6554,6555],{"class":120,"line":530},[118,6556,5464],{"class":128},[118,6558,6559],{"class":120,"line":543},[118,6560,185],{"emptyLinePlaceholder":184},[118,6562,6563],{"class":120,"line":548},[118,6564,2741],{"class":128},[118,6566,6567],{"class":120,"line":571},[118,6568,185],{"emptyLinePlaceholder":184},[118,6570,6571],{"class":120,"line":589},[118,6572,6573],{"class":190},"\u002F\u002F1、全局函数在类内实现\n",[118,6575,6576,6578,6580],{"class":120,"line":594},[118,6577,197],{"class":124},[118,6579,438],{"class":135},[118,6581,441],{"class":128},[118,6583,6584],{"class":120,"line":599},[118,6585,392],{"class":128},[118,6587,6588,6590,6592,6594,6596,6598,6600,6602,6604,6606,6608],{"class":120,"line":604},[118,6589,3101],{"class":128},[118,6591,129],{"class":124},[118,6593,3563],{"class":128},[118,6595,537],{"class":124},[118,6597,4614],{"class":124},[118,6599,19],{"class":135},[118,6601,203],{"class":128},[118,6603,3108],{"class":557},[118,6605,213],{"class":128},[118,6607,5658],{"class":459},[118,6609,1511],{"class":128},[118,6611,6612,6615],{"class":120,"line":615},[118,6613,6614],{"class":135},"    printPerson",[118,6616,4635],{"class":128},[118,6618,6619],{"class":120,"line":620},[118,6620,264],{"class":128},[118,6622,6623],{"class":120,"line":629},[118,6624,185],{"emptyLinePlaceholder":184},[118,6626,6627],{"class":120,"line":634},[118,6628,6629],{"class":190},"\u002F\u002F2、全局函数在类外实现\n",[118,6631,6632,6634,6636],{"class":120,"line":639},[118,6633,197],{"class":124},[118,6635,922],{"class":135},[118,6637,441],{"class":128},[118,6639,6640],{"class":120,"line":650},[118,6641,392],{"class":128},[118,6643,6644,6646,6648,6650,6652,6654,6656,6658,6661,6663,6665],{"class":120,"line":1612},[118,6645,3101],{"class":128},[118,6647,129],{"class":124},[118,6649,3563],{"class":128},[118,6651,537],{"class":124},[118,6653,4614],{"class":124},[118,6655,19],{"class":135},[118,6657,203],{"class":128},[118,6659,6660],{"class":557},"\"Jerry\"",[118,6662,213],{"class":128},[118,6664,4932],{"class":459},[118,6666,1511],{"class":128},[118,6668,6669,6671],{"class":120,"line":1636},[118,6670,4807],{"class":135},[118,6672,4635],{"class":128},[118,6674,6675],{"class":120,"line":1644},[118,6676,264],{"class":128},[118,6678,6679],{"class":120,"line":1651},[118,6680,185],{"emptyLinePlaceholder":184},[118,6682,6683,6685,6687],{"class":120,"line":1656},[118,6684,537],{"class":124},[118,6686,609],{"class":135},[118,6688,612],{"class":128},[118,6690,6691],{"class":120,"line":1661},[118,6692,185],{"emptyLinePlaceholder":184},[118,6694,6695],{"class":120,"line":1670},[118,6696,6697],{"class":190},"    \u002F\u002Ftest01();\n",[118,6699,6700],{"class":120,"line":1675},[118,6701,185],{"emptyLinePlaceholder":184},[118,6703,6704,6706],{"class":120,"line":1682},[118,6705,982],{"class":135},[118,6707,626],{"class":128},[118,6709,6710],{"class":120,"line":1689},[118,6711,185],{"emptyLinePlaceholder":184},[118,6713,6714],{"class":120,"line":1694},[118,6715,185],{"emptyLinePlaceholder":184},[118,6717,6718,6720,6722],{"class":120,"line":1699},[118,6719,642],{"class":124},[118,6721,645],{"class":459},[118,6723,463],{"class":128},[118,6725,6726],{"class":120,"line":1708},[118,6727,264],{"class":128},[19,6729,6730],{},[23,6731,150],{},[108,6733,6736],{"className":6734,"code":6735,"language":662,"meta":113},[660],"类外实现 ---- 姓名： Jerry 年龄：30\n",[115,6737,6735],{"__ignoreMap":113},[19,6739,6740],{},"总结：建议全局函数做类内实现，用法简单，而且编译器可以直接识别",[89,6742,6743],{"id":6743},"类模板案例",[19,6745,6746],{},"案例描述:  实现一个通用的数组类，要求如下：",[62,6748,6749,6752,6755,6758,6761,6764,6767],{},[65,6750,6751],{},"可以对内置数据类型以及自定义数据类型的数据进行存储",[65,6753,6754],{},"将数组中的数据存储到堆区",[65,6756,6757],{},"构造函数中可以传入数组的容量",[65,6759,6760],{},"提供对应的拷贝构造函数以及operator=防止浅拷贝问题",[65,6762,6763],{},"提供尾插法和尾删法对数组中的数据进行增加和删除",[65,6765,6766],{},"可以通过下标的方式访问数组中的元素",[65,6768,6769],{},"可以获取数组中当前元素个数和数组的容量",[19,6771,6772],{},[23,6773,174],{},[19,6775,6776],{},"myArray.hpp中代码",[108,6778,6780],{"className":110,"code":6779,"language":112,"meta":113,"style":113},"#pragma once\n#include \u003Ciostream>\nusing namespace std;\n\ntemplate\u003Cclass T>\nclass MyArray\n{\npublic:\n    \n    \u002F\u002F构造函数\n    MyArray(int capacity)\n    {\n        this->m_Capacity = capacity;\n        this->m_Size = 0;\n        pAddress = new T[this->m_Capacity];\n    }\n\n    \u002F\u002F拷贝构造\n    MyArray(const MyArray & arr)\n    {\n        this->m_Capacity = arr.m_Capacity;\n        this->m_Size = arr.m_Size;\n        this->pAddress = new T[this->m_Capacity];\n        for (int i = 0; i \u003C this->m_Size; i++)\n        {\n            \u002F\u002F如果T为对象，而且还包含指针，必须需要重载 = 操作符，因为这个等号不是 构造 而是赋值，\n            \u002F\u002F 普通类型可以直接= 但是指针类型需要深拷贝\n            this->pAddress[i] = arr.pAddress[i];\n        }\n    }\n\n    \u002F\u002F重载= 操作符  防止浅拷贝问题\n    MyArray& operator=(const MyArray& myarray) {\n\n        if (this->pAddress != NULL) {\n            delete[] this->pAddress;\n            this->m_Capacity = 0;\n            this->m_Size = 0;\n        }\n\n        this->m_Capacity = myarray.m_Capacity;\n        this->m_Size = myarray.m_Size;\n        this->pAddress = new T[this->m_Capacity];\n        for (int i = 0; i \u003C this->m_Size; i++) {\n            this->pAddress[i] = myarray[i];\n        }\n        return *this;\n    }\n\n    \u002F\u002F重载[] 操作符  arr[0]\n    T& operator [](int index)\n    {\n        return this->pAddress[index]; \u002F\u002F不考虑越界，用户自己去处理\n    }\n\n    \u002F\u002F尾插法\n    void Push_back(const T & val)\n    {\n        if (this->m_Capacity == this->m_Size)\n        {\n            return;\n        }\n        this->pAddress[this->m_Size] = val;\n        this->m_Size++;\n    }\n\n    \u002F\u002F尾删法\n    void Pop_back()\n    {\n        if (this->m_Size == 0)\n        {\n            return;\n        }\n        this->m_Size--;\n    }\n\n    \u002F\u002F获取数组容量\n    int getCapacity()\n    {\n        return this->m_Capacity;\n    }\n\n    \u002F\u002F获取数组大小\n    int getSize()\n    {\n        return this->m_Size;\n    }\n\n    \u002F\u002F析构\n    ~MyArray()\n    {\n        if (this->pAddress != NULL)\n        {\n            delete[] this->pAddress;\n            this->pAddress = NULL;\n            this->m_Capacity = 0;\n            this->m_Size = 0;\n        }\n    }\n\nprivate:\n    T * pAddress;  \u002F\u002F指向一个堆空间，这个空间存储真正的数据\n    int m_Capacity; \u002F\u002F容量\n    int m_Size;   \u002F\u002F 大小\n};\n",[115,6781,6782,6788,6794,6804,6808,6820,6827,6831,6835,6839,6844,6858,6862,6874,6887,6906,6910,6914,6919,6937,6941,6952,6963,6980,7007,7011,7016,7021,7034,7038,7042,7046,7051,7075,7079,7096,7106,7118,7130,7134,7138,7149,7160,7176,7202,7213,7217,7228,7232,7236,7241,7262,7266,7278,7282,7286,7291,7311,7315,7332,7336,7343,7347,7364,7375,7379,7383,7388,7397,7401,7417,7421,7427,7431,7442,7446,7450,7455,7464,7468,7477,7481,7485,7490,7499,7503,7512,7516,7521,7527,7535,7540,7557,7562,7571,7584,7597,7610,7615,7620,7625,7630,7645,7656,7667],{"__ignoreMap":113},[118,6783,6784,6786],{"class":120,"line":121},[118,6785,5773],{"class":124},[118,6787,5776],{"class":135},[118,6789,6790,6792],{"class":120,"line":142},[118,6791,2622],{"class":124},[118,6793,5783],{"class":557},[118,6795,6796,6798,6800,6802],{"class":120,"line":194},[118,6797,2630],{"class":124},[118,6799,2633],{"class":124},[118,6801,2636],{"class":135},[118,6803,463],{"class":128},[118,6805,6806],{"class":120,"line":224},[118,6807,185],{"emptyLinePlaceholder":184},[118,6809,6810,6812,6814,6816,6818],{"class":120,"line":239},[118,6811,125],{"class":124},[118,6813,129],{"class":128},[118,6815,714],{"class":124},[118,6817,136],{"class":135},[118,6819,139],{"class":128},[118,6821,6822,6824],{"class":120,"line":250},[118,6823,714],{"class":124},[118,6825,6826],{"class":135}," MyArray\n",[118,6828,6829],{"class":120,"line":261},[118,6830,392],{"class":128},[118,6832,6833],{"class":120,"line":267},[118,6834,2669],{"class":124},[118,6836,6837],{"class":120,"line":272},[118,6838,484],{"class":128},[118,6840,6841],{"class":120,"line":278},[118,6842,6843],{"class":190},"    \u002F\u002F构造函数\n",[118,6845,6846,6849,6851,6853,6856],{"class":120,"line":301},[118,6847,6848],{"class":135},"    MyArray",[118,6850,203],{"class":128},[118,6852,537],{"class":124},[118,6854,6855],{"class":209}," capacity",[118,6857,386],{"class":128},[118,6859,6860],{"class":120,"line":313},[118,6861,1223],{"class":128},[118,6863,6864,6866,6869,6871],{"class":120,"line":322},[118,6865,2700],{"class":459},[118,6867,6868],{"class":128},"->m_Capacity ",[118,6870,233],{"class":124},[118,6872,6873],{"class":128}," capacity;\n",[118,6875,6876,6878,6881,6883,6885],{"class":120,"line":331},[118,6877,2700],{"class":459},[118,6879,6880],{"class":128},"->m_Size ",[118,6882,233],{"class":124},[118,6884,645],{"class":459},[118,6886,463],{"class":128},[118,6888,6889,6892,6894,6897,6900,6903],{"class":120,"line":336},[118,6890,6891],{"class":128},"        pAddress ",[118,6893,233],{"class":124},[118,6895,6896],{"class":124}," new",[118,6898,6899],{"class":128}," T[",[118,6901,6902],{"class":459},"this",[118,6904,6905],{"class":128},"->m_Capacity];\n",[118,6907,6908],{"class":120,"line":341},[118,6909,1354],{"class":128},[118,6911,6912],{"class":120,"line":347},[118,6913,185],{"emptyLinePlaceholder":184},[118,6915,6916],{"class":120,"line":360},[118,6917,6918],{"class":190},"    \u002F\u002F拷贝构造\n",[118,6920,6921,6923,6925,6928,6931,6933,6935],{"class":120,"line":389},[118,6922,6848],{"class":135},[118,6924,203],{"class":128},[118,6926,6927],{"class":124},"const",[118,6929,6930],{"class":135}," MyArray",[118,6932,1089],{"class":124},[118,6934,1174],{"class":209},[118,6936,386],{"class":128},[118,6938,6939],{"class":120,"line":395},[118,6940,1223],{"class":128},[118,6942,6943,6945,6947,6949],{"class":120,"line":405},[118,6944,2700],{"class":459},[118,6946,6868],{"class":128},[118,6948,233],{"class":124},[118,6950,6951],{"class":128}," arr.m_Capacity;\n",[118,6953,6954,6956,6958,6960],{"class":120,"line":414},[118,6955,2700],{"class":459},[118,6957,6880],{"class":128},[118,6959,233],{"class":124},[118,6961,6962],{"class":128}," arr.m_Size;\n",[118,6964,6965,6967,6970,6972,6974,6976,6978],{"class":120,"line":423},[118,6966,2700],{"class":459},[118,6968,6969],{"class":128},"->pAddress ",[118,6971,233],{"class":124},[118,6973,6896],{"class":124},[118,6975,6899],{"class":128},[118,6977,6902],{"class":459},[118,6979,6905],{"class":128},[118,6981,6982,6984,6986,6988,6990,6992,6994,6996,6998,7000,7003,7005],{"class":120,"line":428},[118,6983,1244],{"class":124},[118,6985,1196],{"class":128},[118,6987,537],{"class":124},[118,6989,1201],{"class":128},[118,6991,233],{"class":124},[118,6993,645],{"class":459},[118,6995,1208],{"class":128},[118,6997,129],{"class":124},[118,6999,3494],{"class":459},[118,7001,7002],{"class":128},"->m_Size; i",[118,7004,1216],{"class":124},[118,7006,386],{"class":128},[118,7008,7009],{"class":120,"line":433},[118,7010,1278],{"class":128},[118,7012,7013],{"class":120,"line":444},[118,7014,7015],{"class":190},"            \u002F\u002F如果T为对象，而且还包含指针，必须需要重载 = 操作符，因为这个等号不是 构造 而是赋值，\n",[118,7017,7018],{"class":120,"line":449},[118,7019,7020],{"class":190},"            \u002F\u002F 普通类型可以直接= 但是指针类型需要深拷贝\n",[118,7022,7023,7026,7029,7031],{"class":120,"line":466},[118,7024,7025],{"class":459},"            this",[118,7027,7028],{"class":128},"->pAddress[i] ",[118,7030,233],{"class":124},[118,7032,7033],{"class":128}," arr.pAddress[i];\n",[118,7035,7036],{"class":120,"line":481},[118,7037,1316],{"class":128},[118,7039,7040],{"class":120,"line":487},[118,7041,1354],{"class":128},[118,7043,7044],{"class":120,"line":493},[118,7045,185],{"emptyLinePlaceholder":184},[118,7047,7048],{"class":120,"line":498},[118,7049,7050],{"class":190},"    \u002F\u002F重载= 操作符  防止浅拷贝问题\n",[118,7052,7053,7055,7057,7060,7062,7064,7066,7068,7070,7073],{"class":120,"line":504},[118,7054,6848],{"class":135},[118,7056,373],{"class":124},[118,7058,7059],{"class":124}," operator",[118,7061,233],{"class":135},[118,7063,203],{"class":128},[118,7065,6927],{"class":124},[118,7067,6930],{"class":135},[118,7069,373],{"class":124},[118,7071,7072],{"class":209}," myarray",[118,7074,221],{"class":128},[118,7076,7077],{"class":120,"line":510},[118,7078,185],{"emptyLinePlaceholder":184},[118,7080,7081,7083,7085,7087,7089,7091,7094],{"class":120,"line":519},[118,7082,1321],{"class":124},[118,7084,1196],{"class":128},[118,7086,6902],{"class":459},[118,7088,6969],{"class":128},[118,7090,1327],{"class":124},[118,7092,7093],{"class":459}," NULL",[118,7095,221],{"class":128},[118,7097,7098,7101,7103],{"class":120,"line":524},[118,7099,7100],{"class":124},"            delete[]",[118,7102,3494],{"class":459},[118,7104,7105],{"class":128},"->pAddress;\n",[118,7107,7108,7110,7112,7114,7116],{"class":120,"line":530},[118,7109,7025],{"class":459},[118,7111,6868],{"class":128},[118,7113,233],{"class":124},[118,7115,645],{"class":459},[118,7117,463],{"class":128},[118,7119,7120,7122,7124,7126,7128],{"class":120,"line":543},[118,7121,7025],{"class":459},[118,7123,6880],{"class":128},[118,7125,233],{"class":124},[118,7127,645],{"class":459},[118,7129,463],{"class":128},[118,7131,7132],{"class":120,"line":548},[118,7133,1316],{"class":128},[118,7135,7136],{"class":120,"line":571},[118,7137,185],{"emptyLinePlaceholder":184},[118,7139,7140,7142,7144,7146],{"class":120,"line":589},[118,7141,2700],{"class":459},[118,7143,6868],{"class":128},[118,7145,233],{"class":124},[118,7147,7148],{"class":128}," myarray.m_Capacity;\n",[118,7150,7151,7153,7155,7157],{"class":120,"line":594},[118,7152,2700],{"class":459},[118,7154,6880],{"class":128},[118,7156,233],{"class":124},[118,7158,7159],{"class":128}," myarray.m_Size;\n",[118,7161,7162,7164,7166,7168,7170,7172,7174],{"class":120,"line":599},[118,7163,2700],{"class":459},[118,7165,6969],{"class":128},[118,7167,233],{"class":124},[118,7169,6896],{"class":124},[118,7171,6899],{"class":128},[118,7173,6902],{"class":459},[118,7175,6905],{"class":128},[118,7177,7178,7180,7182,7184,7186,7188,7190,7192,7194,7196,7198,7200],{"class":120,"line":604},[118,7179,1244],{"class":124},[118,7181,1196],{"class":128},[118,7183,537],{"class":124},[118,7185,1201],{"class":128},[118,7187,233],{"class":124},[118,7189,645],{"class":459},[118,7191,1208],{"class":128},[118,7193,129],{"class":124},[118,7195,3494],{"class":459},[118,7197,7002],{"class":128},[118,7199,1216],{"class":124},[118,7201,221],{"class":128},[118,7203,7204,7206,7208,7210],{"class":120,"line":615},[118,7205,7025],{"class":459},[118,7207,7028],{"class":128},[118,7209,233],{"class":124},[118,7211,7212],{"class":128}," myarray[i];\n",[118,7214,7215],{"class":120,"line":620},[118,7216,1316],{"class":128},[118,7218,7219,7221,7224,7226],{"class":120,"line":629},[118,7220,2815],{"class":124},[118,7222,7223],{"class":124}," *",[118,7225,6902],{"class":459},[118,7227,463],{"class":128},[118,7229,7230],{"class":120,"line":634},[118,7231,1354],{"class":128},[118,7233,7234],{"class":120,"line":639},[118,7235,185],{"emptyLinePlaceholder":184},[118,7237,7238],{"class":120,"line":650},[118,7239,7240],{"class":190},"    \u002F\u002F重载[] 操作符  arr[0]\n",[118,7242,7243,7246,7248,7250,7253,7255,7257,7260],{"class":120,"line":1612},[118,7244,7245],{"class":135},"    T",[118,7247,373],{"class":124},[118,7249,7059],{"class":124},[118,7251,7252],{"class":135}," []",[118,7254,203],{"class":128},[118,7256,537],{"class":124},[118,7258,7259],{"class":209}," index",[118,7261,386],{"class":128},[118,7263,7264],{"class":120,"line":1636},[118,7265,1223],{"class":128},[118,7267,7268,7270,7272,7275],{"class":120,"line":1644},[118,7269,2815],{"class":124},[118,7271,3494],{"class":459},[118,7273,7274],{"class":128},"->pAddress[index];",[118,7276,7277],{"class":190}," \u002F\u002F不考虑越界，用户自己去处理\n",[118,7279,7280],{"class":120,"line":1651},[118,7281,1354],{"class":128},[118,7283,7284],{"class":120,"line":1656},[118,7285,185],{"emptyLinePlaceholder":184},[118,7287,7288],{"class":120,"line":1661},[118,7289,7290],{"class":190},"    \u002F\u002F尾插法\n",[118,7292,7293,7295,7298,7300,7302,7304,7306,7309],{"class":120,"line":1670},[118,7294,2485],{"class":124},[118,7296,7297],{"class":135}," Push_back",[118,7299,203],{"class":128},[118,7301,6927],{"class":124},[118,7303,136],{"class":135},[118,7305,1089],{"class":124},[118,7307,7308],{"class":209}," val",[118,7310,386],{"class":128},[118,7312,7313],{"class":120,"line":1675},[118,7314,1223],{"class":128},[118,7316,7317,7319,7321,7323,7325,7327,7329],{"class":120,"line":1682},[118,7318,1321],{"class":124},[118,7320,1196],{"class":128},[118,7322,6902],{"class":459},[118,7324,6868],{"class":128},[118,7326,2803],{"class":124},[118,7328,3494],{"class":459},[118,7330,7331],{"class":128},"->m_Size)\n",[118,7333,7334],{"class":120,"line":1689},[118,7335,1278],{"class":128},[118,7337,7338,7341],{"class":120,"line":1694},[118,7339,7340],{"class":124},"            return",[118,7342,463],{"class":128},[118,7344,7345],{"class":120,"line":1699},[118,7346,1316],{"class":128},[118,7348,7349,7351,7354,7356,7359,7361],{"class":120,"line":1708},[118,7350,2700],{"class":459},[118,7352,7353],{"class":128},"->pAddress[",[118,7355,6902],{"class":459},[118,7357,7358],{"class":128},"->m_Size] ",[118,7360,233],{"class":124},[118,7362,7363],{"class":128}," val;\n",[118,7365,7366,7368,7371,7373],{"class":120,"line":3098},[118,7367,2700],{"class":459},[118,7369,7370],{"class":128},"->m_Size",[118,7372,1216],{"class":124},[118,7374,463],{"class":128},[118,7376,7377],{"class":120,"line":3118},[118,7378,1354],{"class":128},[118,7380,7381],{"class":120,"line":3135},[118,7382,185],{"emptyLinePlaceholder":184},[118,7384,7385],{"class":120,"line":3141},[118,7386,7387],{"class":190},"    \u002F\u002F尾删法\n",[118,7389,7390,7392,7395],{"class":120,"line":3147},[118,7391,2485],{"class":124},[118,7393,7394],{"class":135}," Pop_back",[118,7396,441],{"class":128},[118,7398,7399],{"class":120,"line":3161},[118,7400,1223],{"class":128},[118,7402,7403,7405,7407,7409,7411,7413,7415],{"class":120,"line":3168},[118,7404,1321],{"class":124},[118,7406,1196],{"class":128},[118,7408,6902],{"class":459},[118,7410,6880],{"class":128},[118,7412,2803],{"class":124},[118,7414,645],{"class":459},[118,7416,386],{"class":128},[118,7418,7419],{"class":120,"line":3173},[118,7420,1278],{"class":128},[118,7422,7423,7425],{"class":120,"line":3187},[118,7424,7340],{"class":124},[118,7426,463],{"class":128},[118,7428,7429],{"class":120,"line":3192},[118,7430,1316],{"class":128},[118,7432,7433,7435,7437,7440],{"class":120,"line":3197},[118,7434,2700],{"class":459},[118,7436,7370],{"class":128},[118,7438,7439],{"class":124},"--",[118,7441,463],{"class":128},[118,7443,7444],{"class":120,"line":3202},[118,7445,1354],{"class":128},[118,7447,7448],{"class":120,"line":3216},[118,7449,185],{"emptyLinePlaceholder":184},[118,7451,7452],{"class":120,"line":3221},[118,7453,7454],{"class":190},"    \u002F\u002F获取数组容量\n",[118,7456,7457,7459,7462],{"class":120,"line":3226},[118,7458,227],{"class":124},[118,7460,7461],{"class":135}," getCapacity",[118,7463,441],{"class":128},[118,7465,7466],{"class":120,"line":3231},[118,7467,1223],{"class":128},[118,7469,7470,7472,7474],{"class":120,"line":3240},[118,7471,2815],{"class":124},[118,7473,3494],{"class":459},[118,7475,7476],{"class":128},"->m_Capacity;\n",[118,7478,7479],{"class":120,"line":3245},[118,7480,1354],{"class":128},[118,7482,7483],{"class":120,"line":3252},[118,7484,185],{"emptyLinePlaceholder":184},[118,7486,7487],{"class":120,"line":3257},[118,7488,7489],{"class":190},"    \u002F\u002F获取数组大小\n",[118,7491,7492,7494,7497],{"class":120,"line":3264},[118,7493,227],{"class":124},[118,7495,7496],{"class":135}," getSize",[118,7498,441],{"class":128},[118,7500,7501],{"class":120,"line":3269},[118,7502,1223],{"class":128},[118,7504,7505,7507,7509],{"class":120,"line":3274},[118,7506,2815],{"class":124},[118,7508,3494],{"class":459},[118,7510,7511],{"class":128},"->m_Size;\n",[118,7513,7514],{"class":120,"line":3283},[118,7515,1354],{"class":128},[118,7517,7519],{"class":120,"line":7518},88,[118,7520,185],{"emptyLinePlaceholder":184},[118,7522,7524],{"class":120,"line":7523},89,[118,7525,7526],{"class":190},"    \u002F\u002F析构\n",[118,7528,7530,7533],{"class":120,"line":7529},90,[118,7531,7532],{"class":135},"    ~MyArray",[118,7534,441],{"class":128},[118,7536,7538],{"class":120,"line":7537},91,[118,7539,1223],{"class":128},[118,7541,7543,7545,7547,7549,7551,7553,7555],{"class":120,"line":7542},92,[118,7544,1321],{"class":124},[118,7546,1196],{"class":128},[118,7548,6902],{"class":459},[118,7550,6969],{"class":128},[118,7552,1327],{"class":124},[118,7554,7093],{"class":459},[118,7556,386],{"class":128},[118,7558,7560],{"class":120,"line":7559},93,[118,7561,1278],{"class":128},[118,7563,7565,7567,7569],{"class":120,"line":7564},94,[118,7566,7100],{"class":124},[118,7568,3494],{"class":459},[118,7570,7105],{"class":128},[118,7572,7574,7576,7578,7580,7582],{"class":120,"line":7573},95,[118,7575,7025],{"class":459},[118,7577,6969],{"class":128},[118,7579,233],{"class":124},[118,7581,7093],{"class":459},[118,7583,463],{"class":128},[118,7585,7587,7589,7591,7593,7595],{"class":120,"line":7586},96,[118,7588,7025],{"class":459},[118,7590,6868],{"class":128},[118,7592,233],{"class":124},[118,7594,645],{"class":459},[118,7596,463],{"class":128},[118,7598,7600,7602,7604,7606,7608],{"class":120,"line":7599},97,[118,7601,7025],{"class":459},[118,7603,6880],{"class":128},[118,7605,233],{"class":124},[118,7607,645],{"class":459},[118,7609,463],{"class":128},[118,7611,7613],{"class":120,"line":7612},98,[118,7614,1316],{"class":128},[118,7616,7618],{"class":120,"line":7617},99,[118,7619,1354],{"class":128},[118,7621,7623],{"class":120,"line":7622},100,[118,7624,185],{"emptyLinePlaceholder":184},[118,7626,7628],{"class":120,"line":7627},101,[118,7629,6548],{"class":124},[118,7631,7633,7636,7639,7642],{"class":120,"line":7632},102,[118,7634,7635],{"class":128},"    T ",[118,7637,7638],{"class":124},"*",[118,7640,7641],{"class":128}," pAddress;",[118,7643,7644],{"class":190},"  \u002F\u002F指向一个堆空间，这个空间存储真正的数据\n",[118,7646,7648,7650,7653],{"class":120,"line":7647},103,[118,7649,227],{"class":124},[118,7651,7652],{"class":128}," m_Capacity;",[118,7654,7655],{"class":190}," \u002F\u002F容量\n",[118,7657,7659,7661,7664],{"class":120,"line":7658},104,[118,7660,227],{"class":124},[118,7662,7663],{"class":128}," m_Size;",[118,7665,7666],{"class":190},"   \u002F\u002F 大小\n",[118,7668,7670],{"class":120,"line":7669},105,[118,7671,2741],{"class":128},[19,7673,7674,151,7676,155],{},[23,7675,150],{},[115,7677,154],{},[19,7679,7680],{},"类模板案例—数组类封装.cpp中",[108,7682,7684],{"className":110,"code":7683,"language":112,"meta":113,"style":113},"#include \"myArray.hpp\"\n#include \u003Cstring>\n\nvoid printIntArray(MyArray\u003Cint>& arr) {\n    for (int i = 0; i \u003C arr.getSize(); i++) {\n        cout \u003C\u003C arr[i] \u003C\u003C \" \";\n    }\n    cout \u003C\u003C endl;\n}\n\n\u002F\u002F测试内置数据类型\nvoid test01()\n{\n    MyArray\u003Cint> array1(10);\n    for (int i = 0; i \u003C 10; i++)\n    {\n        array1.Push_back(i);\n    }\n    cout \u003C\u003C \"array1打印输出：\" \u003C\u003C endl;\n    printIntArray(array1);\n    cout \u003C\u003C \"array1的大小：\" \u003C\u003C array1.getSize() \u003C\u003C endl;\n    cout \u003C\u003C \"array1的容量：\" \u003C\u003C array1.getCapacity() \u003C\u003C endl;\n\n    cout \u003C\u003C \"--------------------------\" \u003C\u003C endl;\n\n    MyArray\u003Cint> array2(array1);\n    array2.Pop_back();\n    cout \u003C\u003C \"array2打印输出：\" \u003C\u003C endl;\n    printIntArray(array2);\n    cout \u003C\u003C \"array2的大小：\" \u003C\u003C array2.getSize() \u003C\u003C endl;\n    cout \u003C\u003C \"array2的容量：\" \u003C\u003C array2.getCapacity() \u003C\u003C endl;\n}\n\n\u002F\u002F测试自定义数据类型\nclass Person {\npublic:\n    Person() {} \n        Person(string name, int age) {\n        this->m_Name = name;\n        this->m_Age = age;\n    }\npublic:\n    string m_Name;\n    int m_Age;\n};\n\nvoid printPersonArray(MyArray\u003CPerson>& personArr)\n{\n    for (int i = 0; i \u003C personArr.getSize(); i++) {\n        cout \u003C\u003C \"姓名：\" \u003C\u003C personArr[i].m_Name \u003C\u003C \" 年龄： \" \u003C\u003C personArr[i].m_Age \u003C\u003C endl;\n    }\n\n}\n\nvoid test02()\n{\n    \u002F\u002F创建数组\n    MyArray\u003CPerson> pArray(10);\n    Person p1(\"孙悟空\", 30);\n    Person p2(\"韩信\", 20);\n    Person p3(\"妲己\", 18);\n    Person p4(\"王昭君\", 15);\n    Person p5(\"赵云\", 24);\n\n    \u002F\u002F插入数据\n    pArray.Push_back(p1);\n    pArray.Push_back(p2);\n    pArray.Push_back(p3);\n    pArray.Push_back(p4);\n    pArray.Push_back(p5);\n\n    printPersonArray(pArray);\n\n    cout \u003C\u003C \"pArray的大小：\" \u003C\u003C pArray.getSize() \u003C\u003C endl;\n    cout \u003C\u003C \"pArray的容量：\" \u003C\u003C pArray.getCapacity() \u003C\u003C endl;\n\n}\n\nint main() {\n\n    \u002F\u002Ftest01();\n\n    test02();\n\n\n    return 0;\n}\n",[115,7685,7686,7693,7699,7703,7727,7758,7772,7776,7784,7788,7792,7797,7805,7809,7825,7852,7856,7867,7871,7884,7892,7914,7936,7940,7953,7957,7968,7978,7991,7998,8020,8041,8045,8049,8054,8062,8066,8073,8092,8102,8112,8116,8120,8124,8130,8134,8138,8162,8166,8195,8223,8227,8231,8235,8239,8247,8251,8256,8275,8291,8308,8327,8346,8365,8369,8374,8384,8393,8402,8411,8420,8424,8432,8436,8458,8479,8483,8487,8491,8499,8503,8507,8511,8517,8521,8525,8533],{"__ignoreMap":113},[118,7687,7688,7690],{"class":120,"line":121},[118,7689,2622],{"class":124},[118,7691,7692],{"class":557}," \"myArray.hpp\"\n",[118,7694,7695,7697],{"class":120,"line":142},[118,7696,2622],{"class":124},[118,7698,2649],{"class":557},[118,7700,7701],{"class":120,"line":194},[118,7702,185],{"emptyLinePlaceholder":184},[118,7704,7705,7707,7710,7712,7715,7717,7719,7721,7723,7725],{"class":120,"line":224},[118,7706,197],{"class":124},[118,7708,7709],{"class":135}," printIntArray",[118,7711,203],{"class":128},[118,7713,7714],{"class":135},"MyArray",[118,7716,129],{"class":128},[118,7718,537],{"class":124},[118,7720,1152],{"class":128},[118,7722,373],{"class":124},[118,7724,1174],{"class":209},[118,7726,221],{"class":128},[118,7728,7729,7731,7733,7735,7737,7739,7741,7743,7745,7748,7751,7754,7756],{"class":120,"line":239},[118,7730,1193],{"class":124},[118,7732,1196],{"class":128},[118,7734,537],{"class":124},[118,7736,1201],{"class":128},[118,7738,233],{"class":124},[118,7740,645],{"class":459},[118,7742,1208],{"class":128},[118,7744,129],{"class":124},[118,7746,7747],{"class":128}," arr.",[118,7749,7750],{"class":135},"getSize",[118,7752,7753],{"class":128},"(); i",[118,7755,1216],{"class":124},[118,7757,221],{"class":128},[118,7759,7760,7762,7764,7766,7768,7770],{"class":120,"line":250},[118,7761,1424],{"class":128},[118,7763,554],{"class":124},[118,7765,1429],{"class":128},[118,7767,554],{"class":124},[118,7769,1434],{"class":557},[118,7771,463],{"class":128},[118,7773,7774],{"class":120,"line":261},[118,7775,1354],{"class":128},[118,7777,7778,7780,7782],{"class":120,"line":267},[118,7779,551],{"class":128},[118,7781,554],{"class":124},[118,7783,568],{"class":128},[118,7785,7786],{"class":120,"line":272},[118,7787,264],{"class":128},[118,7789,7790],{"class":120,"line":278},[118,7791,185],{"emptyLinePlaceholder":184},[118,7793,7794],{"class":120,"line":301},[118,7795,7796],{"class":190},"\u002F\u002F测试内置数据类型\n",[118,7798,7799,7801,7803],{"class":120,"line":313},[118,7800,197],{"class":124},[118,7802,438],{"class":135},[118,7804,441],{"class":128},[118,7806,7807],{"class":120,"line":322},[118,7808,392],{"class":128},[118,7810,7811,7813,7816,7819,7821,7823],{"class":120,"line":331},[118,7812,6848],{"class":128},[118,7814,7815],{"class":124},"\u003Cint>",[118,7817,7818],{"class":135}," array1",[118,7820,203],{"class":128},[118,7822,3113],{"class":459},[118,7824,1511],{"class":128},[118,7826,7827,7829,7831,7833,7835,7837,7839,7841,7843,7845,7848,7850],{"class":120,"line":336},[118,7828,1193],{"class":124},[118,7830,1196],{"class":128},[118,7832,537],{"class":124},[118,7834,1201],{"class":128},[118,7836,233],{"class":124},[118,7838,645],{"class":459},[118,7840,1208],{"class":128},[118,7842,129],{"class":124},[118,7844,460],{"class":459},[118,7846,7847],{"class":128},"; i",[118,7849,1216],{"class":124},[118,7851,386],{"class":128},[118,7853,7854],{"class":120,"line":341},[118,7855,1223],{"class":128},[118,7857,7858,7861,7864],{"class":120,"line":347},[118,7859,7860],{"class":128},"        array1.",[118,7862,7863],{"class":135},"Push_back",[118,7865,7866],{"class":128},"(i);\n",[118,7868,7869],{"class":120,"line":360},[118,7870,1354],{"class":128},[118,7872,7873,7875,7877,7880,7882],{"class":120,"line":389},[118,7874,551],{"class":128},[118,7876,554],{"class":124},[118,7878,7879],{"class":557}," \"array1打印输出：\"",[118,7881,561],{"class":124},[118,7883,568],{"class":128},[118,7885,7886,7889],{"class":120,"line":395},[118,7887,7888],{"class":135},"    printIntArray",[118,7890,7891],{"class":128},"(array1);\n",[118,7893,7894,7896,7898,7901,7903,7906,7908,7910,7912],{"class":120,"line":405},[118,7895,551],{"class":128},[118,7897,554],{"class":124},[118,7899,7900],{"class":557}," \"array1的大小：\"",[118,7902,561],{"class":124},[118,7904,7905],{"class":128}," array1.",[118,7907,7750],{"class":135},[118,7909,4733],{"class":128},[118,7911,554],{"class":124},[118,7913,568],{"class":128},[118,7915,7916,7918,7920,7923,7925,7927,7930,7932,7934],{"class":120,"line":414},[118,7917,551],{"class":128},[118,7919,554],{"class":124},[118,7921,7922],{"class":557}," \"array1的容量：\"",[118,7924,561],{"class":124},[118,7926,7905],{"class":128},[118,7928,7929],{"class":135},"getCapacity",[118,7931,4733],{"class":128},[118,7933,554],{"class":124},[118,7935,568],{"class":128},[118,7937,7938],{"class":120,"line":423},[118,7939,185],{"emptyLinePlaceholder":184},[118,7941,7942,7944,7946,7949,7951],{"class":120,"line":428},[118,7943,551],{"class":128},[118,7945,554],{"class":124},[118,7947,7948],{"class":557}," \"--------------------------\"",[118,7950,561],{"class":124},[118,7952,568],{"class":128},[118,7954,7955],{"class":120,"line":433},[118,7956,185],{"emptyLinePlaceholder":184},[118,7958,7959,7961,7963,7966],{"class":120,"line":444},[118,7960,6848],{"class":128},[118,7962,7815],{"class":124},[118,7964,7965],{"class":135}," array2",[118,7967,7891],{"class":128},[118,7969,7970,7973,7976],{"class":120,"line":449},[118,7971,7972],{"class":128},"    array2.",[118,7974,7975],{"class":135},"Pop_back",[118,7977,626],{"class":128},[118,7979,7980,7982,7984,7987,7989],{"class":120,"line":466},[118,7981,551],{"class":128},[118,7983,554],{"class":124},[118,7985,7986],{"class":557}," \"array2打印输出：\"",[118,7988,561],{"class":124},[118,7990,568],{"class":128},[118,7992,7993,7995],{"class":120,"line":481},[118,7994,7888],{"class":135},[118,7996,7997],{"class":128},"(array2);\n",[118,7999,8000,8002,8004,8007,8009,8012,8014,8016,8018],{"class":120,"line":487},[118,8001,551],{"class":128},[118,8003,554],{"class":124},[118,8005,8006],{"class":557}," \"array2的大小：\"",[118,8008,561],{"class":124},[118,8010,8011],{"class":128}," array2.",[118,8013,7750],{"class":135},[118,8015,4733],{"class":128},[118,8017,554],{"class":124},[118,8019,568],{"class":128},[118,8021,8022,8024,8026,8029,8031,8033,8035,8037,8039],{"class":120,"line":493},[118,8023,551],{"class":128},[118,8025,554],{"class":124},[118,8027,8028],{"class":557}," \"array2的容量：\"",[118,8030,561],{"class":124},[118,8032,8011],{"class":128},[118,8034,7929],{"class":135},[118,8036,4733],{"class":128},[118,8038,554],{"class":124},[118,8040,568],{"class":128},[118,8042,8043],{"class":120,"line":498},[118,8044,264],{"class":128},[118,8046,8047],{"class":120,"line":504},[118,8048,185],{"emptyLinePlaceholder":184},[118,8050,8051],{"class":120,"line":510},[118,8052,8053],{"class":190},"\u002F\u002F测试自定义数据类型\n",[118,8055,8056,8058,8060],{"class":120,"line":519},[118,8057,714],{"class":124},[118,8059,5408],{"class":135},[118,8061,5411],{"class":128},[118,8063,8064],{"class":120,"line":524},[118,8065,2669],{"class":124},[118,8067,8068,8070],{"class":120,"line":530},[118,8069,2674],{"class":135},[118,8071,8072],{"class":128},"() {} \n",[118,8074,8075,8078,8080,8082,8084,8086,8088,8090],{"class":120,"line":543},[118,8076,8077],{"class":135},"        Person",[118,8079,203],{"class":128},[118,8081,2679],{"class":135},[118,8083,2682],{"class":209},[118,8085,213],{"class":128},[118,8087,537],{"class":124},[118,8089,2689],{"class":209},[118,8091,221],{"class":128},[118,8093,8094,8096,8098,8100],{"class":120,"line":548},[118,8095,2700],{"class":459},[118,8097,2703],{"class":128},[118,8099,233],{"class":124},[118,8101,2708],{"class":128},[118,8103,8104,8106,8108,8110],{"class":120,"line":571},[118,8105,2700],{"class":459},[118,8107,2715],{"class":128},[118,8109,233],{"class":124},[118,8111,2720],{"class":128},[118,8113,8114],{"class":120,"line":589},[118,8115,1354],{"class":128},[118,8117,8118],{"class":120,"line":594},[118,8119,2669],{"class":124},[118,8121,8122],{"class":120,"line":599},[118,8123,2729],{"class":128},[118,8125,8126,8128],{"class":120,"line":604},[118,8127,227],{"class":124},[118,8129,2736],{"class":128},[118,8131,8132],{"class":120,"line":615},[118,8133,2741],{"class":128},[118,8135,8136],{"class":120,"line":620},[118,8137,185],{"emptyLinePlaceholder":184},[118,8139,8140,8142,8145,8147,8149,8151,8153,8155,8157,8160],{"class":120,"line":629},[118,8141,197],{"class":124},[118,8143,8144],{"class":135}," printPersonArray",[118,8146,203],{"class":128},[118,8148,7714],{"class":135},[118,8150,129],{"class":128},[118,8152,2880],{"class":135},[118,8154,1152],{"class":128},[118,8156,373],{"class":124},[118,8158,8159],{"class":209}," personArr",[118,8161,386],{"class":128},[118,8163,8164],{"class":120,"line":634},[118,8165,392],{"class":128},[118,8167,8168,8170,8172,8174,8176,8178,8180,8182,8184,8187,8189,8191,8193],{"class":120,"line":639},[118,8169,1193],{"class":124},[118,8171,1196],{"class":128},[118,8173,537],{"class":124},[118,8175,1201],{"class":128},[118,8177,233],{"class":124},[118,8179,645],{"class":459},[118,8181,1208],{"class":128},[118,8183,129],{"class":124},[118,8185,8186],{"class":128}," personArr.",[118,8188,7750],{"class":135},[118,8190,7753],{"class":128},[118,8192,1216],{"class":124},[118,8194,221],{"class":128},[118,8196,8197,8199,8201,8204,8206,8209,8211,8214,8216,8219,8221],{"class":120,"line":650},[118,8198,1424],{"class":128},[118,8200,554],{"class":124},[118,8202,8203],{"class":557}," \"姓名：\"",[118,8205,561],{"class":124},[118,8207,8208],{"class":128}," personArr[i].m_Name ",[118,8210,554],{"class":124},[118,8212,8213],{"class":557}," \" 年龄： \"",[118,8215,561],{"class":124},[118,8217,8218],{"class":128}," personArr[i].m_Age ",[118,8220,554],{"class":124},[118,8222,568],{"class":128},[118,8224,8225],{"class":120,"line":1612},[118,8226,1354],{"class":128},[118,8228,8229],{"class":120,"line":1636},[118,8230,185],{"emptyLinePlaceholder":184},[118,8232,8233],{"class":120,"line":1644},[118,8234,264],{"class":128},[118,8236,8237],{"class":120,"line":1651},[118,8238,185],{"emptyLinePlaceholder":184},[118,8240,8241,8243,8245],{"class":120,"line":1656},[118,8242,197],{"class":124},[118,8244,922],{"class":135},[118,8246,441],{"class":128},[118,8248,8249],{"class":120,"line":1661},[118,8250,392],{"class":128},[118,8252,8253],{"class":120,"line":1670},[118,8254,8255],{"class":190},"    \u002F\u002F创建数组\n",[118,8257,8258,8260,8262,8264,8266,8269,8271,8273],{"class":120,"line":1675},[118,8259,6848],{"class":128},[118,8261,129],{"class":124},[118,8263,2880],{"class":128},[118,8265,1152],{"class":124},[118,8267,8268],{"class":135}," pArray",[118,8270,203],{"class":128},[118,8272,3113],{"class":459},[118,8274,1511],{"class":128},[118,8276,8277,8279,8281,8283,8285,8287,8289],{"class":120,"line":1682},[118,8278,3101],{"class":128},[118,8280,2885],{"class":135},[118,8282,203],{"class":128},[118,8284,3574],{"class":557},[118,8286,213],{"class":128},[118,8288,4932],{"class":459},[118,8290,1511],{"class":128},[118,8292,8293,8295,8297,8299,8302,8304,8306],{"class":120,"line":1689},[118,8294,3101],{"class":128},[118,8296,2894],{"class":135},[118,8298,203],{"class":128},[118,8300,8301],{"class":557},"\"韩信\"",[118,8303,213],{"class":128},[118,8305,5658],{"class":459},[118,8307,1511],{"class":128},[118,8309,8310,8312,8315,8317,8320,8322,8325],{"class":120,"line":1694},[118,8311,3101],{"class":128},[118,8313,8314],{"class":135},"p3",[118,8316,203],{"class":128},[118,8318,8319],{"class":557},"\"妲己\"",[118,8321,213],{"class":128},[118,8323,8324],{"class":459},"18",[118,8326,1511],{"class":128},[118,8328,8329,8331,8334,8336,8339,8341,8344],{"class":120,"line":1699},[118,8330,3101],{"class":128},[118,8332,8333],{"class":135},"p4",[118,8335,203],{"class":128},[118,8337,8338],{"class":557},"\"王昭君\"",[118,8340,213],{"class":128},[118,8342,8343],{"class":459},"15",[118,8345,1511],{"class":128},[118,8347,8348,8350,8353,8355,8358,8360,8363],{"class":120,"line":1708},[118,8349,3101],{"class":128},[118,8351,8352],{"class":135},"p5",[118,8354,203],{"class":128},[118,8356,8357],{"class":557},"\"赵云\"",[118,8359,213],{"class":128},[118,8361,8362],{"class":459},"24",[118,8364,1511],{"class":128},[118,8366,8367],{"class":120,"line":3098},[118,8368,185],{"emptyLinePlaceholder":184},[118,8370,8371],{"class":120,"line":3118},[118,8372,8373],{"class":190},"    \u002F\u002F插入数据\n",[118,8375,8376,8379,8381],{"class":120,"line":3135},[118,8377,8378],{"class":128},"    pArray.",[118,8380,7863],{"class":135},[118,8382,8383],{"class":128},"(p1);\n",[118,8385,8386,8388,8390],{"class":120,"line":3141},[118,8387,8378],{"class":128},[118,8389,7863],{"class":135},[118,8391,8392],{"class":128},"(p2);\n",[118,8394,8395,8397,8399],{"class":120,"line":3147},[118,8396,8378],{"class":128},[118,8398,7863],{"class":135},[118,8400,8401],{"class":128},"(p3);\n",[118,8403,8404,8406,8408],{"class":120,"line":3161},[118,8405,8378],{"class":128},[118,8407,7863],{"class":135},[118,8409,8410],{"class":128},"(p4);\n",[118,8412,8413,8415,8417],{"class":120,"line":3168},[118,8414,8378],{"class":128},[118,8416,7863],{"class":135},[118,8418,8419],{"class":128},"(p5);\n",[118,8421,8422],{"class":120,"line":3173},[118,8423,185],{"emptyLinePlaceholder":184},[118,8425,8426,8429],{"class":120,"line":3187},[118,8427,8428],{"class":135},"    printPersonArray",[118,8430,8431],{"class":128},"(pArray);\n",[118,8433,8434],{"class":120,"line":3192},[118,8435,185],{"emptyLinePlaceholder":184},[118,8437,8438,8440,8442,8445,8447,8450,8452,8454,8456],{"class":120,"line":3197},[118,8439,551],{"class":128},[118,8441,554],{"class":124},[118,8443,8444],{"class":557}," \"pArray的大小：\"",[118,8446,561],{"class":124},[118,8448,8449],{"class":128}," pArray.",[118,8451,7750],{"class":135},[118,8453,4733],{"class":128},[118,8455,554],{"class":124},[118,8457,568],{"class":128},[118,8459,8460,8462,8464,8467,8469,8471,8473,8475,8477],{"class":120,"line":3202},[118,8461,551],{"class":128},[118,8463,554],{"class":124},[118,8465,8466],{"class":557}," \"pArray的容量：\"",[118,8468,561],{"class":124},[118,8470,8449],{"class":128},[118,8472,7929],{"class":135},[118,8474,4733],{"class":128},[118,8476,554],{"class":124},[118,8478,568],{"class":128},[118,8480,8481],{"class":120,"line":3216},[118,8482,185],{"emptyLinePlaceholder":184},[118,8484,8485],{"class":120,"line":3221},[118,8486,264],{"class":128},[118,8488,8489],{"class":120,"line":3226},[118,8490,185],{"emptyLinePlaceholder":184},[118,8492,8493,8495,8497],{"class":120,"line":3231},[118,8494,537],{"class":124},[118,8496,609],{"class":135},[118,8498,612],{"class":128},[118,8500,8501],{"class":120,"line":3240},[118,8502,185],{"emptyLinePlaceholder":184},[118,8504,8505],{"class":120,"line":3245},[118,8506,6697],{"class":190},[118,8508,8509],{"class":120,"line":3252},[118,8510,185],{"emptyLinePlaceholder":184},[118,8512,8513,8515],{"class":120,"line":3257},[118,8514,982],{"class":135},[118,8516,626],{"class":128},[118,8518,8519],{"class":120,"line":3264},[118,8520,185],{"emptyLinePlaceholder":184},[118,8522,8523],{"class":120,"line":3269},[118,8524,185],{"emptyLinePlaceholder":184},[118,8526,8527,8529,8531],{"class":120,"line":3274},[118,8528,642],{"class":124},[118,8530,645],{"class":459},[118,8532,463],{"class":128},[118,8534,8535],{"class":120,"line":3283},[118,8536,264],{"class":128},[19,8538,8539,8541,8542,8545,8546,8548],{},[23,8540,150],{}," 该代码块依赖同一案例中的 ",[115,8543,8544],{},"myArray.hpp","，不能单独编译；补齐头文件后，运行结果由 ",[115,8547,154],{}," 中的数组打印逻辑产生。",[19,8550,667],{},[19,8552,8553],{},"能够利用所学知识点实现通用的数组",[8555,8556,8557],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":113,"searchDepth":142,"depth":142,"links":8559},[8560],{"id":5,"depth":142,"text":5,"children":8561},[8562,8563,8564],{"id":17,"depth":194,"text":17},{"id":73,"depth":194,"text":73},{"id":87,"depth":194,"text":87},0,"1700","2023-10-05","2023-10-05-cplusplus-jiao-xue","\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md",false,{},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban",{"title":5,"description":113},"wiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","flv6J7YjHSCN4f9fIM58X1YiSRFuKRqb2WaETAOPTPY",[8579,8585,8591,8597,8603,8609,8615,8621,8627,8633,8638,8644,8650,8656,8662,8668,8674,8680,8686,8692,8698,8704,8710,8716,8722,8724,8730,8736,8742,8748,8754,8760,8766,8772,8778,8784,8790,8796,8802,8808,8814,8820,8825,8831,8837,8843,8849,8855,8861,8867,8873,8879,8885,8891,8897,8903,8909,8915,8921,8927,8933,8939,8945,8951,8957,8963,8969,8975,8981,8987,8993,8999,9005,9011,9017,9023,9029,9035,9041,9047,9053,9059,9065,9071,9077,9083,9089,9095,9101,9107,9113,9119],{"path":8580,"stem":8581,"title":8582,"authors":8583,"date":8567,"chapterOrder":8584,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++开发环境搭建与测试",[7],"0100",{"path":8586,"stem":8587,"title":8588,"authors":8589,"date":8567,"chapterOrder":8590,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++基础初识",[7],"0200",{"path":8592,"stem":8593,"title":8594,"authors":8595,"date":8567,"chapterOrder":8596,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","数据类型与数据存放",[7],"0300",{"path":8598,"stem":8599,"title":8600,"authors":8601,"date":8567,"chapterOrder":8602,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","输入输出",[7],"0400",{"path":8604,"stem":8605,"title":8606,"authors":8607,"date":8567,"chapterOrder":8608,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","wiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","运算符",[7],"0500",{"path":8610,"stem":8611,"title":8612,"authors":8613,"date":8567,"chapterOrder":8614,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","wiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","程序流程结构",[7],"0600",{"path":8616,"stem":8617,"title":8618,"authors":8619,"date":8567,"chapterOrder":8620,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","wiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","数组",[7],"0700",{"path":8622,"stem":8623,"title":8624,"authors":8625,"date":8567,"chapterOrder":8626,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","函数与头文件",[7],"0800",{"path":8628,"stem":8629,"title":8630,"authors":8631,"date":8567,"chapterOrder":8632,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指针",[7],"0900",{"path":8634,"stem":8635,"title":8636,"authors":8637,"date":8567,"chapterOrder":3876,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","结构体与共用体",[7],{"path":8639,"stem":8640,"title":8641,"authors":8642,"date":8567,"chapterOrder":8643,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","内存分区与生命周期",[7],"1100",{"path":8645,"stem":8646,"title":8647,"authors":8648,"date":8567,"chapterOrder":8649,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","wiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用",[7],"1200",{"path":8651,"stem":8652,"title":8653,"authors":8654,"date":8567,"chapterOrder":8655,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao","wiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高","函数提高",[7],"1300",{"path":8657,"stem":8658,"title":8659,"authors":8660,"date":8567,"chapterOrder":8661,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1350-ming-ming-kong-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F1350-命名空间","命名空间",[7],"1350",{"path":8663,"stem":8664,"title":8665,"authors":8666,"date":8567,"chapterOrder":8667,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","封装",[7],"1400-0100",{"path":8669,"stem":8670,"title":8671,"authors":8672,"date":8567,"chapterOrder":8673,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","对象初始化和清理",[7],"1400-0200",{"path":8675,"stem":8676,"title":8677,"authors":8678,"date":8567,"chapterOrder":8679,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","对象模型与this指针",[7],"1400-0300",{"path":8681,"stem":8682,"title":8683,"authors":8684,"date":8567,"chapterOrder":8685,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","友元与运算符重载",[7],"1400-0400",{"path":8687,"stem":8688,"title":8689,"authors":8690,"date":8567,"chapterOrder":8691,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","继承",[7],"1400-0500",{"path":8693,"stem":8694,"title":8695,"authors":8696,"date":8567,"chapterOrder":8697,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","多态",[7],"1400-0600",{"path":8699,"stem":8700,"title":8701,"authors":8702,"date":8567,"chapterOrder":8703,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","类和对象",[7],"1400",{"path":8705,"stem":8706,"title":8707,"authors":8708,"date":8567,"chapterOrder":8709,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1450-han-shu-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F1450-函数指针","函数指针",[7],"1450",{"path":8711,"stem":8712,"title":8713,"authors":8714,"date":8567,"chapterOrder":8715,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","wiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","文件操作",[7],"1500",{"path":8717,"stem":8718,"title":8719,"authors":8720,"date":8567,"chapterOrder":8721,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","wiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理",[7],"1600",{"path":8574,"stem":8576,"title":5,"authors":8723,"date":8567,"chapterOrder":8566,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},[7],{"path":8725,"stem":8726,"title":8727,"authors":8728,"date":8567,"chapterOrder":8729,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","STL初识",[7],"1800-0100",{"path":8731,"stem":8732,"title":8733,"authors":8734,"date":8567,"chapterOrder":8735,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array",[7],"1800-0200",{"path":8737,"stem":8738,"title":8739,"authors":8740,"date":8567,"chapterOrder":8741,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string容器",[7],"1800-0300",{"path":8743,"stem":8744,"title":8745,"authors":8746,"date":8567,"chapterOrder":8747,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器",[7],"1800-0400",{"path":8749,"stem":8750,"title":8751,"authors":8752,"date":8567,"chapterOrder":8753,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器",[7],"1800-0500",{"path":8755,"stem":8756,"title":8757,"authors":8758,"date":8567,"chapterOrder":8759,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器",[7],"1800-0600",{"path":8761,"stem":8762,"title":8763,"authors":8764,"date":8567,"chapterOrder":8765,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue 容器",[7],"1800-0700",{"path":8767,"stem":8768,"title":8769,"authors":8770,"date":8567,"chapterOrder":8771,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器",[7],"1800-0800",{"path":8773,"stem":8774,"title":8775,"authors":8776,"date":8567,"chapterOrder":8777,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器",[7],"1800-0900",{"path":8779,"stem":8780,"title":8781,"authors":8782,"date":8567,"chapterOrder":8783,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器",[7],"1800-1000",{"path":8785,"stem":8786,"title":8787,"authors":8788,"date":8567,"chapterOrder":8789,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","函数对象与谓词",[7],"1800-1100",{"path":8791,"stem":8792,"title":8793,"authors":8794,"date":8567,"chapterOrder":8795,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","常用算法",[7],"1800-1200",{"path":8797,"stem":8798,"title":8799,"authors":8800,"date":8567,"chapterOrder":8801,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","STL提高编程",[7],"1800",{"path":8803,"stem":8804,"title":8805,"authors":8806,"date":8567,"chapterOrder":8807,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++类型转换",[7],"1900",{"path":8809,"stem":8810,"title":8811,"authors":8812,"date":8567,"chapterOrder":8813,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto",[7],"2000-0100",{"path":8815,"stem":8816,"title":8817,"authors":8818,"date":8567,"chapterOrder":8819,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr",[7],"2000-0200",{"path":8821,"stem":8822,"title":2630,"authors":8823,"date":8567,"chapterOrder":8824,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using",[7],"2000-0300",{"path":8826,"stem":8827,"title":8828,"authors":8829,"date":8567,"chapterOrder":8830,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class",[7],"2000-0400",{"path":8832,"stem":8833,"title":8834,"authors":8835,"date":8567,"chapterOrder":8836,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","范围 for 循环",[7],"2000-0500",{"path":8838,"stem":8839,"title":8840,"authors":8841,"date":8567,"chapterOrder":8842,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","结构化绑定",[7],"2000-0600",{"path":8844,"stem":8845,"title":8846,"authors":8847,"date":8567,"chapterOrder":8848,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr",[7],"2000-0700",{"path":8850,"stem":8851,"title":8852,"authors":8853,"date":8567,"chapterOrder":8854,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII",[7],"2000-0800",{"path":8856,"stem":8857,"title":8858,"authors":8859,"date":8567,"chapterOrder":8860,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","智能指针",[7],"2000-0900",{"path":8862,"stem":8863,"title":8864,"authors":8865,"date":8567,"chapterOrder":8866,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","右值引用和移动语义",[7],"2000-1000",{"path":8868,"stem":8869,"title":8870,"authors":8871,"date":8567,"chapterOrder":8872,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda 表达式",[7],"2000-1100",{"path":8874,"stem":8875,"title":8876,"authors":8877,"date":8567,"chapterOrder":8878,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function",[7],"2000-1200",{"path":8880,"stem":8881,"title":8882,"authors":8883,"date":8567,"chapterOrder":8884,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind",[7],"2000-1300",{"path":8886,"stem":8887,"title":8888,"authors":8889,"date":8567,"chapterOrder":8890,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional",[7],"2000-1400",{"path":8892,"stem":8893,"title":8894,"authors":8895,"date":8567,"chapterOrder":8896,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant",[7],"2000-1500",{"path":8898,"stem":8899,"title":8900,"authors":8901,"date":8567,"chapterOrder":8902,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span",[7],"2000-1600",{"path":8904,"stem":8905,"title":8906,"authors":8907,"date":8567,"chapterOrder":8908,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print",[7],"2000-1700",{"path":8910,"stem":8911,"title":8912,"authors":8913,"date":8567,"chapterOrder":8914,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono",[7],"2000-1800",{"path":8916,"stem":8917,"title":8918,"authors":8919,"date":8567,"chapterOrder":8920,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-bing-fa-shi-shen-me","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-并发是什么","并发是什么",[7],"2000-1900-0100",{"path":8922,"stem":8923,"title":8924,"authors":8925,"date":8567,"chapterOrder":8926,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-bing-xing-shi-shen-me","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-并行是什么","并行是什么",[7],"2000-1900-0200",{"path":8928,"stem":8929,"title":8930,"authors":8931,"date":8567,"chapterOrder":8932,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-xie-cheng-shi-shen-me","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-协程是什么","协程是什么",[7],"2000-1900-0300",{"path":8934,"stem":8935,"title":8936,"authors":8937,"date":8567,"chapterOrder":8938,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1000-bing-fa-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1000-并发编程","并发编程",[7],"2000-1900-1000",{"path":8940,"stem":8941,"title":8942,"authors":8943,"date":8567,"chapterOrder":8944,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1100-std-thread","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1100-std-thread","std::thread",[7],"2000-1900-1100",{"path":8946,"stem":8947,"title":8948,"authors":8949,"date":8567,"chapterOrder":8950,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1200-mutex-lock-guard","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1200-mutex-lock-guard","mutex 与 RAII 锁",[7],"2000-1900-1200",{"path":8952,"stem":8953,"title":8954,"authors":8955,"date":8567,"chapterOrder":8956,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1300-std-atomic","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1300-std-atomic","std::atomic",[7],"2000-1900-1300",{"path":8958,"stem":8959,"title":8960,"authors":8961,"date":8567,"chapterOrder":8962,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1400-condition-variable","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1400-condition-variable","condition_variable",[7],"2000-1900-1400",{"path":8964,"stem":8965,"title":8966,"authors":8967,"date":8567,"chapterOrder":8968,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1500-future-async-promise","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1500-future-async-promise","future、async、promise 与 packaged_task",[7],"2000-1900-1500",{"path":8970,"stem":8971,"title":8972,"authors":8973,"date":8567,"chapterOrder":8974,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1600-jthread-stop-token","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1600-jthread-stop-token","jthread 与 stop_token",[7],"2000-1900-1600",{"path":8976,"stem":8977,"title":8978,"authors":8979,"date":8567,"chapterOrder":8980,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-1700-semaphore-latch-barrier","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-1700-semaphore-latch-barrier","semaphore、latch 与 barrier",[7],"2000-1900-1700",{"path":8982,"stem":8983,"title":8984,"authors":8985,"date":8567,"chapterOrder":8986,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bing-xing-yu-xie-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发并行与协程","并发、并行与协程",[7],"2000-1900",{"path":8988,"stem":8989,"title":8990,"authors":8991,"date":8567,"chapterOrder":8992,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem",[7],"2000-2000",{"path":8994,"stem":8995,"title":8996,"authors":8997,"date":8567,"chapterOrder":8998,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","modules 简介",[7],"2000-2100",{"path":9000,"stem":9001,"title":9002,"authors":9003,"date":8567,"chapterOrder":9004,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","现代C++",[7],"2000",{"path":9006,"stem":9007,"title":9008,"authors":9009,"date":8567,"chapterOrder":9010,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","定时器与异步 IO",[7],"2100-0100-0100",{"path":9012,"stem":9013,"title":9014,"authors":9015,"date":8567,"chapterOrder":9016,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio 基础",[7],"2100-0100-0200",{"path":9018,"stem":9019,"title":9020,"authors":9021,"date":8567,"chapterOrder":9022,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","串口通信教学",[7],"2100-0100-0300",{"path":9024,"stem":9025,"title":9026,"authors":9027,"date":8567,"chapterOrder":9028,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0350-chuan-kou-tong-xin-chuan-kou-bao-xie-yi-shi-li","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0350-串口通信串口包协议实例","串口通信串口包协议实例",[7],"2100-0100-0350",{"path":9030,"stem":9031,"title":9032,"authors":9033,"date":8567,"chapterOrder":9034,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP 通信",[7],"2100-0100-0400",{"path":9036,"stem":9037,"title":9038,"authors":9039,"date":8567,"chapterOrder":9040,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP 通信",[7],"2100-0100-0500",{"path":9042,"stem":9043,"title":9044,"authors":9045,"date":8567,"chapterOrder":9046,"chapterDepth":142,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成",[7],"2100-0100-0600",{"path":9048,"stem":9049,"title":9050,"authors":9051,"date":8567,"chapterOrder":9052,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio异步IO库",[7],"2100-0100",{"path":9054,"stem":9055,"title":9056,"authors":9057,"date":8567,"chapterOrder":9058,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen线性代数库",[7],"2100-0200",{"path":9060,"stem":9061,"title":9062,"authors":9063,"date":8567,"chapterOrder":9064,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV计算机视觉库",[7],"2100-0300",{"path":9066,"stem":9067,"title":9068,"authors":9069,"date":8567,"chapterOrder":9070,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL点云库",[7],"2100-0400",{"path":9072,"stem":9073,"title":9074,"authors":9075,"date":8567,"chapterOrder":9076,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus 李群李代数库",[7],"2100-0500",{"path":9078,"stem":9079,"title":9080,"authors":9081,"date":8567,"chapterOrder":9082,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用库学习",[7],"2100",{"path":9084,"stem":9085,"title":9086,"authors":9087,"date":8567,"chapterOrder":9088,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets与构建安装",[7],"2200-0100",{"path":9090,"stem":9091,"title":9092,"authors":9093,"date":8567,"chapterOrder":9094,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","顶层CMake与公共编译选项",[7],"2200-0200",{"path":9096,"stem":9097,"title":9098,"authors":9099,"date":8567,"chapterOrder":9100,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","src与lib模块CMake详解",[7],"2200-0300",{"path":9102,"stem":9103,"title":9104,"authors":9105,"date":8567,"chapterOrder":9106,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","第三方库依赖写法",[7],"2200-0400",{"path":9108,"stem":9109,"title":9110,"authors":9111,"date":8567,"chapterOrder":9112,"chapterDepth":121,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","模板扩展与常见问题",[7],"2200-0500",{"path":9114,"stem":9115,"title":9116,"authors":9117,"date":8567,"chapterOrder":9118,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":8572},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake工程模板",[7],"2200",{"path":8569,"stem":9120,"title":9121,"authors":9122,"date":8567,"chapterOrder":9123,"chapterDepth":8565,"docKey":8568,"docRoot":8569,"docTitle":8570,"isWikiDoc":184,"isWikiIndex":184},"wiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",[7],null,[9125,9127,9130,9133],{"name":7,"image":9126},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":9128,"image":9129},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":9131,"image":9132},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":9134,"image":9135},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431897131]