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