[{"data":1,"prerenderedAt":4152},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li":3727,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li":4136,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li":4151},{"id":4,"title":5,"body":6,"canonicalPath":3709,"chapter":3710,"chapterSort":3711,"date":3712,"description":129,"docI18nKey":3713,"docKey":3714,"docRoot":3715,"docTitle":3716,"extension":3717,"i18nKey":3718,"isBlogPost":3719,"isWikiDoc":248,"isWikiIndex":3719,"layout":3720,"legacyPath":3721,"locale":3722,"localeSlug":3723,"meta":3724,"navigation":248,"path":3709,"seo":3725,"sourcePath":3721,"sourceStem":3718,"stem":3718,"wikiDepth":136,"__hash__":3726},"content/wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理.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    //构造函数\n    Person()\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};\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","    //构造函数\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},"    //析构函数\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],{},"运行/观察结果："," 运行后会按输出语句打印对应内容，变量值可结合初始化、赋值和函数调用顺序推导。",[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},"//1、构造函数分类\n// 按照参数分类分为 有参和无参构造   无参又称为默认构造函数\n// 按照类型分类分为 普通构造和拷贝构造\n\nclass Person {\npublic:\n    //无参（默认）构造函数\n    Person() {\n        cout \u003C\u003C \"无参构造函数!\" \u003C\u003C endl;\n    }\n    //有参构造函数\n    Person(int a) {\n        age = a;\n        cout \u003C\u003C \"有参构造函数!\" \u003C\u003C endl;\n    }\n    //拷贝构造函数\n    Person(const Person& p) {\n        age = p.age;\n        cout \u003C\u003C \"拷贝构造函数!\" \u003C\u003C endl;\n    }\n    //析构函数\n    ~Person() {\n        cout \u003C\u003C \"析构函数!\" \u003C\u003C endl;\n    }\npublic:\n    int age;\n};\n\n//2、构造函数的调用\n//调用无参构造函数\nvoid test01() {\n    Person p; //调用无参构造函数\n}\n\n//调用有参的构造函数\nvoid test02() {\n\n    //2.1  括号法，常用\n    Person p1(10);\n    //注意1：调用无参构造函数不能加括号，如果加了编译器认为这是一个函数声明\n    //Person p2();\n\n    //2.2 显式法\n    Person p2 = Person(10); \n    Person p3 = Person(p2);\n    //Person(10)单独写就是匿名对象  当前行结束之后，马上析构\n\n    //2.3 隐式转换法\n    Person p4 = 10; // Person p4 = Person(10); \n    Person p5 = p4; // Person p5 = Person(p4); \n\n    //注意2：不能利用 拷贝构造函数 初始化匿名对象 编译器认为是对象声明\n    //Person p5(p4);\n}\n\nint main() {\n\n    test01();\n    //test02();\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},"//1、构造函数分类\n",[133,395,396],{"class":135,"line":147},[133,397,398],{"class":163},"// 按照参数分类分为 有参和无参构造   无参又称为默认构造函数\n",[133,400,401],{"class":135,"line":154},[133,402,403],{"class":163},"// 按照类型分类分为 普通构造和拷贝构造\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},"    //无参（默认）构造函数\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},"    //有参构造函数\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},"    //拷贝构造函数\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},"//2、构造函数的调用\n",[133,603,605],{"class":135,"line":604},30,[133,606,607],{"class":163},"//调用无参构造函数\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}," //调用无参构造函数\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},"//调用有参的构造函数\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},"    //2.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},"    //注意1：调用无参构造函数不能加括号，如果加了编译器认为这是一个函数声明\n",[133,687,689],{"class":135,"line":688},41,[133,690,691],{"class":163},"    //Person 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},"    //2.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},"    //Person(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},"    //2.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}," // 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}," // 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},"    //注意2：不能利用 拷贝构造函数 初始化匿名对象 编译器认为是对象声明\n",[133,793,795],{"class":135,"line":794},53,[133,796,797],{"class":163},"    //Person 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},"    //test02();\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    //析构函数在释放内存之前调用\n    ~Person() {\n        cout \u003C\u003C \"析构函数!\" \u003C\u003C endl;\n    }\npublic:\n    int mAge;\n};\n\n//1. 使用一个已经创建完毕的对象来初始化一个新对象\nvoid test01() {\n\n    Person man(100); //p对象已经创建完毕\n    Person newman(man); //调用拷贝构造函数\n    Person newman2 = man; //拷贝构造\n\n    //Person newman3;\n    //newman3 = man; //不是调用拷贝构造函数，赋值操作\n}\n\n//2. 值传递的方式给函数参数传值\n//相当于Person p1 = p;\nvoid doWork(Person p1) {}\nvoid test02() {\n    Person p; //无参构造函数\n    doWork(p);\n}\n\n//3. 以值方式返回局部对象\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    //test01();\n    //test02();\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},"    //析构函数在释放内存之前调用\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},"//1. 使用一个已经创建完毕的对象来初始化一个新对象\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}," //p对象已经创建完毕\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}," //调用拷贝构造函数\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}," //拷贝构造\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},"    //Person newman3;\n",[133,1129,1130,1133],{"class":135,"line":610},[133,1131,1132],{"class":163},"    //newman3 = man;",[133,1134,1135],{"class":163}," //不是调用拷贝构造函数，赋值操作\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},"//2. 值传递的方式给函数参数传值\n",[133,1150,1151],{"class":135,"line":638},[133,1152,1153],{"class":163},"//相当于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}," //无参构造函数\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},"//3. 以值方式返回局部对象\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},"    //test01();\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    //无参（默认）构造函数\n    Person() {\n        cout \u003C\u003C \"无参构造函数!\" \u003C\u003C endl;\n    }\n    //有参构造函数\n    Person(int a) {\n        age = a;\n        cout \u003C\u003C \"有参构造函数!\" \u003C\u003C endl;\n    }\n    //拷贝构造函数\n    Person(const Person& p) {\n        age = p.age;\n        cout \u003C\u003C \"拷贝构造函数!\" \u003C\u003C endl;\n    }\n    //析构函数\n    ~Person() {\n        cout \u003C\u003C \"析构函数!\" \u003C\u003C endl;\n    }\npublic:\n    int age;\n};\n\nvoid test01()\n{\n    Person p1(18);\n    //如果不写拷贝构造，编译器会自动添加拷贝构造，并且做浅拷贝操作\n    Person p2(p1);\n\n    cout \u003C\u003C \"p2的年龄为： \" \u003C\u003C p2.age \u003C\u003C endl;\n}\n\nvoid test02()\n{\n    //如果用户提供有参构造，编译器不会提供默认构造，会提供拷贝构造\n    Person p1; //此时如果用户自己没有提供默认构造，会出错\n    Person p2(10); //用户提供的有参\n    Person p3(p2); //此时如果用户没有提供拷贝构造，编译器会提供\n\n    //如果用户提供拷贝构造，编译器不会提供其他构造函数\n    Person p4; //此时如果用户自己没有提供默认构造，会出错\n    Person p5(10); //此时如果用户自己没有提供有参，会出错\n    Person p6(p5); //用户自己提供拷贝构造\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},"    //如果不写拷贝构造，编译器会自动添加拷贝构造，并且做浅拷贝操作\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},"    //如果用户提供有参构造，编译器不会提供默认构造，会提供拷贝构造\n",[133,1664,1665,1668],{"class":135,"line":654},[133,1666,1667],{"class":150},"    Person p1;",[133,1669,1670],{"class":163}," //此时如果用户自己没有提供默认构造，会出错\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}," //用户提供的有参\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}," //此时如果用户没有提供拷贝构造，编译器会提供\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},"    //如果用户提供拷贝构造，编译器不会提供其他构造函数\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}," //此时如果用户自己没有提供有参，会出错\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}," //用户自己提供拷贝构造\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    //无参（默认）构造函数\n    Person() {\n        cout \u003C\u003C \"无参构造函数!\" \u003C\u003C endl;\n    }\n    //有参构造函数\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    //拷贝构造函数  \n    Person(const Person& p) {\n        cout \u003C\u003C \"拷贝构造函数!\" \u003C\u003C endl;\n        //如果不利用深拷贝在堆区创建新内存，会导致浅拷贝带来的重复释放堆区问题\n        m_age = p.m_age;\n        m_height = new int(*p.m_height);\n        \n    }\n\n    //析构函数\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},"    //拷贝构造函数  \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},"        //如果不利用深拷贝在堆区创建新内存，会导致浅拷贝带来的重复释放堆区问题\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    ////传统方式初始化\n    //Person(int a, int b, int c) {\n    //  m_A = a;\n    //  m_B = b;\n    //  m_C = c;\n    //}\n\n    //初始化列表方式初始化\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},"    ////传统方式初始化\n",[133,2310,2311],{"class":135,"line":167},[133,2312,2313],{"class":163},"    //Person(int a, int b, int c) {\n",[133,2315,2316],{"class":135,"line":176},[133,2317,2318],{"class":163},"    //  m_A = a;\n",[133,2320,2321],{"class":135,"line":182},[133,2322,2323],{"class":163},"    //  m_B = b;\n",[133,2325,2326],{"class":135,"line":201},[133,2327,2328],{"class":163},"    //  m_C = c;\n",[133,2330,2331],{"class":135,"line":207},[133,2332,2333],{"class":163},"    //}\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},"    //初始化列表方式初始化\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    //初始化列表可以告诉编译器调用哪一个构造函数\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    //当类中成员是其他类对象时，我们称该成员为 对象成员\n    //构造的顺序是 ：先调用对象成员的构造，再调用本类构造\n    //析构顺序与构造相反\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},"    //初始化列表可以告诉编译器调用哪一个构造函数\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},"    //当类中成员是其他类对象时，我们称该成员为 对象成员\n",[133,2932,2933],{"class":135,"line":735},[133,2934,2935],{"class":163},"    //构造的顺序是 ：先调用对象成员的构造，再调用本类构造\n",[133,2937,2938],{"class":135,"line":741},[133,2939,2940],{"class":163},"    //析构顺序与构造相反\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; //静态成员变量\n\n    //静态成员变量特点：\n    //1 在编译阶段分配内存\n    //2 类内声明，类外初始化\n    //3 所有对象共享同一份数据\n\nprivate:\n    static int m_B; //静态成员变量也是有访问权限的\n};\nint Person::m_A = 10;\nint Person::m_B = 10;\n\nvoid test01()\n{\n    //静态成员变量两种访问方式\n\n    //1、通过对象\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; //共享同一份数据\n    cout \u003C\u003C \"p2.m_A = \" \u003C\u003C p2.m_A \u003C\u003C endl;\n\n    //2、通过类名\n    cout \u003C\u003C \"m_A = \" \u003C\u003C Person::m_A \u003C\u003C endl;\n\n    //cout \u003C\u003C \"m_B = \" \u003C\u003C Person::m_B \u003C\u003C endl; //私有权限访问不到\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}," //静态成员变量\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},"    //静态成员变量特点：\n",[133,3112,3113],{"class":135,"line":207},[133,3114,3115],{"class":163},"    //1 在编译阶段分配内存\n",[133,3117,3118],{"class":135,"line":213},[133,3119,3120],{"class":163},"    //2 类内声明，类外初始化\n",[133,3122,3123],{"class":135,"line":221},[133,3124,3125],{"class":163},"    //3 所有对象共享同一份数据\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}," //静态成员变量也是有访问权限的\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},"    //静态成员变量两种访问方式\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},"    //1、通过对象\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}," //共享同一份数据\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},"    //2、通过类名\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},"    //cout \u003C\u003C \"m_B = \" \u003C\u003C Person::m_B \u003C\u003C endl;",[133,3341,3342],{"class":163}," //私有权限访问不到\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    //静态成员函数特点：\n    //1 程序共享一个函数\n    //2 静态成员函数只能访问静态成员变量\n    \n    static void func()\n    {\n        cout \u003C\u003C \"func调用\" \u003C\u003C endl;\n        m_A = 100;\n        //m_B = 100; //错误，不可以访问非静态成员变量\n    }\n\n    static int m_A; //静态成员变量\n    int m_B; // \nprivate:\n\n    //静态成员函数也是有访问权限的\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    //静态成员变量两种访问方式\n\n    //1、通过对象\n    Person p1;\n    p1.func();\n\n    //2、通过类名\n    Person::func();\n\n    //Person::func2(); //私有权限访问不到\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},"    //静态成员函数特点：\n",[133,3429,3430],{"class":135,"line":182},[133,3431,3432],{"class":163},"    //1 程序共享一个函数\n",[133,3434,3435],{"class":135,"line":201},[133,3436,3437],{"class":163},"    //2 静态成员函数只能访问静态成员变量\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},"        //m_B = 100;",[133,3488,3489],{"class":163}," //错误，不可以访问非静态成员变量\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}," // \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},"    //静态成员函数也是有访问权限的\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},"    //Person::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},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","13.2",13020000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","zh-CN","zh-cn",{},{"title":5,"description":129},"MnDf2uSHCgmoolw8ByzLynF_uj1LlN-aSA8KMgq1BKI",[3728,3733,3738,3744,3750,3756,3757,3763,3769,3775,3781,3787,3793,3799,3805,3811,3817,3823,3829,3835,3841,3847,3853,3859,3865,3871,3877,3883,3889,3895,3901,3907,3913,3919,3925,3931,3937,3943,3949,3955,3961,3967,3973,3979,3985,3991,3997,4003,4009,4014,4020,4026,4032,4038,4044,4050,4056,4062,4068,4074,4080,4086,4091,4096,4102,4108,4114,4120,4126,4132],{"path":3729,"stem":3730,"title":3731,"date":3712,"chapter":2512,"chapterSort":3732,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识",1000000,{"path":3734,"stem":3735,"title":3736,"date":3712,"chapter":676,"chapterSort":3737,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期",10000000,{"path":3739,"stem":3740,"title":3741,"date":3712,"chapter":3742,"chapterSort":3743,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":3745,"stem":3746,"title":3747,"date":3712,"chapter":3748,"chapterSort":3749,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":3751,"stem":3752,"title":3753,"date":3712,"chapter":3754,"chapterSort":3755,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":3709,"stem":3718,"title":5,"date":3712,"chapter":3710,"chapterSort":3711,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},{"path":3758,"stem":3759,"title":3760,"date":3712,"chapter":3761,"chapterSort":3762,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":3764,"stem":3765,"title":3766,"date":3712,"chapter":3767,"chapterSort":3768,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":3770,"stem":3771,"title":3772,"date":3712,"chapter":3773,"chapterSort":3774,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":3776,"stem":3777,"title":3778,"date":3712,"chapter":3779,"chapterSort":3780,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":3782,"stem":3783,"title":3784,"date":3712,"chapter":3785,"chapterSort":3786,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":3788,"stem":3789,"title":3790,"date":3712,"chapter":3791,"chapterSort":3792,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":3794,"stem":3795,"title":3796,"date":3712,"chapter":3797,"chapterSort":3798,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":3800,"stem":3801,"title":3802,"date":3712,"chapter":3803,"chapterSort":3804,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":3806,"stem":3807,"title":3808,"date":3712,"chapter":3809,"chapterSort":3810,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":3812,"stem":3813,"title":3814,"date":3712,"chapter":3815,"chapterSort":3816,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":3818,"stem":3819,"title":3820,"date":3712,"chapter":3821,"chapterSort":3822,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":3824,"stem":3825,"title":3826,"date":3712,"chapter":3827,"chapterSort":3828,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":3830,"stem":3831,"title":3832,"date":3712,"chapter":3833,"chapterSort":3834,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":3836,"stem":3837,"title":3838,"date":3712,"chapter":3839,"chapterSort":3840,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":3842,"stem":3843,"title":3844,"date":3712,"chapter":3845,"chapterSort":3846,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":3848,"stem":3849,"title":3850,"date":3712,"chapter":3851,"chapterSort":3852,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":3854,"stem":3855,"title":3856,"date":3712,"chapter":3857,"chapterSort":3858,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":3860,"stem":3861,"title":3862,"date":3712,"chapter":3863,"chapterSort":3864,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","auto","18.1",18010000,{"path":3866,"stem":3867,"title":3868,"date":3712,"chapter":3869,"chapterSort":3870,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":3872,"stem":3873,"title":3874,"date":3712,"chapter":3875,"chapterSort":3876,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":3878,"stem":3879,"title":3880,"date":3712,"chapter":3881,"chapterSort":3882,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":3884,"stem":3885,"title":3886,"date":3712,"chapter":3887,"chapterSort":3888,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":3890,"stem":3891,"title":3892,"date":3712,"chapter":3893,"chapterSort":3894,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":3896,"stem":3897,"title":3898,"date":3712,"chapter":3899,"chapterSort":3900,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":3902,"stem":3903,"title":3904,"date":3712,"chapter":3905,"chapterSort":3906,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":3908,"stem":3909,"title":3910,"date":3712,"chapter":3911,"chapterSort":3912,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":3914,"stem":3915,"title":3916,"date":3712,"chapter":3917,"chapterSort":3918,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":3920,"stem":3921,"title":3922,"date":3712,"chapter":3923,"chapterSort":3924,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":3926,"stem":3927,"title":3928,"date":3712,"chapter":3929,"chapterSort":3930,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":3932,"stem":3933,"title":3934,"date":3712,"chapter":3935,"chapterSort":3936,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":3938,"stem":3939,"title":3940,"date":3712,"chapter":3941,"chapterSort":3942,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":3944,"stem":3945,"title":3946,"date":3712,"chapter":3947,"chapterSort":3948,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":3950,"stem":3951,"title":3952,"date":3712,"chapter":3953,"chapterSort":3954,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":3956,"stem":3957,"title":3958,"date":3712,"chapter":3959,"chapterSort":3960,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":3962,"stem":3963,"title":3964,"date":3712,"chapter":3965,"chapterSort":3966,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":3968,"stem":3969,"title":3970,"date":3712,"chapter":3971,"chapterSort":3972,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":3974,"stem":3975,"title":3976,"date":3712,"chapter":3977,"chapterSort":3978,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":3980,"stem":3981,"title":3982,"date":3712,"chapter":3983,"chapterSort":3984,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":3986,"stem":3987,"title":3988,"date":3712,"chapter":3989,"chapterSort":3990,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":3992,"stem":3993,"title":3994,"date":3712,"chapter":3995,"chapterSort":3996,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":3998,"stem":3999,"title":4000,"date":3712,"chapter":4001,"chapterSort":4002,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":4004,"stem":4005,"title":4006,"date":3712,"chapter":4007,"chapterSort":4008,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":4010,"stem":4011,"title":4012,"date":3712,"chapter":1598,"chapterSort":4013,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++",18000000,{"path":4015,"stem":4016,"title":4017,"date":3712,"chapter":4018,"chapterSort":4019,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":4021,"stem":4022,"title":4023,"date":3712,"chapter":4024,"chapterSort":4025,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":4027,"stem":4028,"title":4029,"date":3712,"chapter":4030,"chapterSort":4031,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":4033,"stem":4034,"title":4035,"date":3712,"chapter":4036,"chapterSort":4037,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":4039,"stem":4040,"title":4041,"date":3712,"chapter":4042,"chapterSort":4043,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":4045,"stem":4046,"title":4047,"date":3712,"chapter":4048,"chapterSort":4049,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":4051,"stem":4052,"title":4053,"date":3712,"chapter":4054,"chapterSort":4055,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":4057,"stem":4058,"title":4059,"date":3712,"chapter":4060,"chapterSort":4061,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":4063,"stem":4064,"title":4065,"date":3712,"chapter":4066,"chapterSort":4067,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":4069,"stem":4070,"title":4071,"date":3712,"chapter":4072,"chapterSort":4073,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":4075,"stem":4076,"title":4077,"date":3712,"chapter":4078,"chapterSort":4079,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":4081,"stem":4082,"title":4083,"date":3712,"chapter":4084,"chapterSort":4085,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":4087,"stem":4088,"title":4089,"date":3712,"chapter":2517,"chapterSort":4090,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放",2000000,{"path":4092,"stem":4093,"title":4094,"date":3712,"chapter":2522,"chapterSort":4095,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出",3000000,{"path":4097,"stem":4098,"title":4099,"date":3712,"chapter":4100,"chapterSort":4101,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":4103,"stem":4104,"title":4105,"date":3712,"chapter":4106,"chapterSort":4107,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":4109,"stem":4110,"title":4111,"date":3712,"chapter":4112,"chapterSort":4113,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":4115,"stem":4116,"title":4117,"date":3712,"chapter":4118,"chapterSort":4119,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":4121,"stem":4122,"title":4123,"date":3712,"chapter":4124,"chapterSort":4125,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":4127,"stem":4128,"title":4129,"date":3712,"chapter":4130,"chapterSort":4131,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":3719},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":3715,"stem":4133,"title":4134,"date":3712,"chapter":3720,"chapterSort":4135,"docKey":3714,"docRoot":3715,"docTitle":3716,"isWikiDoc":248,"isWikiIndex":248},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":4137},[4138,4141,4144,4147,4150],{"path":4139,"localeSlug":4140,"i18nKey":3718},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","en-us",{"path":4142,"localeSlug":4143,"i18nKey":3718},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","zh-hant",{"path":4145,"localeSlug":4146,"i18nKey":3718},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","zh-hk",{"path":4148,"localeSlug":4149,"i18nKey":3718},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","zh-tw",{"path":3709,"localeSlug":3723,"i18nKey":3718},[4139,3721,4142,3721,4145,3721,4148,3721,3709,3721],1780663030824]