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