[{"data":1,"prerenderedAt":6369},["ShallowReactive",2],{"navigation":3,"\u002Fch10\u002Fsmart_pointer\u002Frvalue_reference":909,"\u002Fch10\u002Fsmart_pointer\u002Frvalue_reference-surround":6365},[4,36,56,96,230,270,414,457,508,583,649,685,767,864,900,904],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"附录","i-lucide-bookmark","\u002Fappendix","appendix",[10,12,16,20,24,28,32],{"title":5,"path":7,"stem":11,"icon":6},"appendix\u002Findex",{"title":13,"path":14,"stem":15,"icon":6},"命令行界面","\u002Fappendix\u002Fcli","appendix\u002Fcli",{"title":17,"path":18,"stem":19,"icon":6},"代码风格","\u002Fappendix\u002Fcoding_style","appendix\u002Fcoding_style",{"title":21,"path":22,"stem":23,"icon":6},"关键字列表","\u002Fappendix\u002Fkeyword","appendix\u002Fkeyword",{"title":25,"path":26,"stem":27,"icon":6},"运算符优先级和结合方向","\u002Fappendix\u002Foperator","appendix\u002Foperator",{"title":29,"path":30,"stem":31,"icon":6},"预处理指令","\u002Fappendix\u002Fpreprocessor","appendix\u002Fpreprocessor",{"title":33,"path":34,"stem":35,"icon":6},"值类别","\u002Fappendix\u002Fvalue_category","appendix\u002Fvalue_category",{"title":37,"icon":38,"path":39,"stem":40,"children":41},"第〇章 基本概念","i-lucide-monitor","\u002Fch00","ch00",[42,44,48,52],{"title":37,"path":39,"stem":43,"icon":38},"ch00\u002Findex",{"title":45,"path":46,"stem":47,"icon":38},"计算机","\u002Fch00\u002Fcomputer","ch00\u002Fcomputer",{"title":49,"path":50,"stem":51,"icon":38},"编程","\u002Fch00\u002Fprogramming","ch00\u002Fprogramming",{"title":53,"path":54,"stem":55,"icon":38},"编程语言","\u002Fch00\u002Fprogramming_language","ch00\u002Fprogramming_language",{"title":57,"icon":58,"path":59,"stem":60,"children":61},"第一章 感性认识 C++ 程序","i-lucide-book-open","\u002Fch01","ch01",[62,64,68,72,76,80,84,88,92],{"title":57,"path":59,"stem":63,"icon":58},"ch01\u002Findex",{"title":65,"path":66,"stem":67,"icon":58},"赋值和分支","\u002Fch01\u002Fassignment_and_if","ch01\u002Fassignment_and_if",{"title":69,"path":70,"stem":71,"icon":58},"最麻烦的门槛","\u002Fch01\u002Fenvironment","ch01\u002Fenvironment",{"title":73,"path":74,"stem":75,"icon":58},"第一个 C++ 程序","\u002Fch01\u002Ffirst_program","ch01\u002Ffirst_program",{"title":77,"path":78,"stem":79,"icon":58},"输入","\u002Fch01\u002Finput","ch01\u002Finput",{"title":81,"path":82,"stem":83,"icon":58},"综合运用","\u002Fch01\u002Fintegrated_use","ch01\u002Fintegrated_use",{"title":85,"path":86,"stem":87,"icon":58},"循环","\u002Fch01\u002Floop","ch01\u002Floop",{"title":89,"path":90,"stem":91,"icon":58},"更多的输出","\u002Fch01\u002Fmore_output","ch01\u002Fmore_output",{"title":93,"path":94,"stem":95,"icon":58},"总结","\u002Fch01\u002Fsummary","ch01\u002Fsummary",{"title":97,"path":98,"stem":99,"children":100,"icon":102},"第二章 理性认识 C++ 程序","\u002Fch02","ch02\u002Findex",[101,103,149,188,227],{"title":97,"path":98,"stem":99,"icon":102},"i-lucide-code",{"title":104,"icon":105,"path":106,"stem":107,"children":108},"第 1 部分 数据成分","i-lucide-database","\u002Fch02\u002Fpart1","ch02\u002Fpart1\u002Findex",[109,110,114,118,122,126],{"title":104,"path":106,"stem":107,"icon":105},{"title":111,"path":112,"stem":113,"icon":105},"初识数组","\u002Fch02\u002Fpart1\u002Farray_glance","ch02\u002Fpart1\u002Farray_glance",{"title":115,"path":116,"stem":117,"icon":105},"常量","\u002Fch02\u002Fpart1\u002Fconstant","ch02\u002Fpart1\u002Fconstant",{"title":119,"path":120,"stem":121,"icon":105},"声明语句","\u002Fch02\u002Fpart1\u002Fdeclaration_statement","ch02\u002Fpart1\u002Fdeclaration_statement",{"title":123,"path":124,"stem":125,"icon":105},"只读变量","\u002Fch02\u002Fpart1\u002Freadonly_variable","ch02\u002Fpart1\u002Freadonly_variable",{"title":127,"icon":128,"path":129,"stem":130,"children":131},"类型系统","i-lucide-dna","\u002Fch02\u002Fpart1\u002Ftype_system","ch02\u002Fpart1\u002Ftype_system\u002Findex",[132,133,137,141,145],{"title":127,"path":129,"stem":130,"icon":128},{"title":134,"path":135,"stem":136,"icon":128},"布尔类型","\u002Fch02\u002Fpart1\u002Ftype_system\u002Fboolean_type","ch02\u002Fpart1\u002Ftype_system\u002Fboolean_type",{"title":138,"path":139,"stem":140,"icon":128},"字符类型","\u002Fch02\u002Fpart1\u002Ftype_system\u002Fcharacter_type","ch02\u002Fpart1\u002Ftype_system\u002Fcharacter_type",{"title":142,"path":143,"stem":144,"icon":128},"浮点类型","\u002Fch02\u002Fpart1\u002Ftype_system\u002Ffloat_type","ch02\u002Fpart1\u002Ftype_system\u002Ffloat_type",{"title":146,"path":147,"stem":148,"icon":128},"整型","\u002Fch02\u002Fpart1\u002Ftype_system\u002Finteger_type","ch02\u002Fpart1\u002Ftype_system\u002Finteger_type",{"title":150,"icon":151,"path":152,"stem":153,"children":154},"第 2 部分 运算成分","i-lucide-calculator","\u002Fch02\u002Fpart2","ch02\u002Fpart2\u002Findex",[155,156,160,164,168,172,176,180,184],{"title":150,"path":152,"stem":153,"icon":151},{"title":157,"path":158,"stem":159,"icon":151},"算术运算符","\u002Fch02\u002Fpart2\u002Farithmetic_operator","ch02\u002Fpart2\u002Farithmetic_operator",{"title":161,"path":162,"stem":163,"icon":151},"赋值运算符","\u002Fch02\u002Fpart2\u002Fassignment_operator","ch02\u002Fpart2\u002Fassignment_operator",{"title":165,"path":166,"stem":167,"icon":151},"位运算符（选读）","\u002Fch02\u002Fpart2\u002Fbit_operator","ch02\u002Fpart2\u002Fbit_operator",{"title":169,"path":170,"stem":171,"icon":151},"关系运算符","\u002Fch02\u002Fpart2\u002Fcomparison_operator","ch02\u002Fpart2\u002Fcomparison_operator",{"title":173,"path":174,"stem":175,"icon":151},"算术类型隐式转换","\u002Fch02\u002Fpart2\u002Fimplicit_conversion","ch02\u002Fpart2\u002Fimplicit_conversion",{"title":177,"path":178,"stem":179,"icon":151},"自增减运算符","\u002Fch02\u002Fpart2\u002Fincdec_operator","ch02\u002Fpart2\u002Fincdec_operator",{"title":181,"path":182,"stem":183,"icon":151},"逻辑运算符","\u002Fch02\u002Fpart2\u002Flogical_operator","ch02\u002Fpart2\u002Flogical_operator",{"title":185,"path":186,"stem":187,"icon":151},"其它常用运算符","\u002Fch02\u002Fpart2\u002Fother_operator","ch02\u002Fpart2\u002Fother_operator",{"title":189,"icon":190,"path":191,"stem":192,"children":193},"第 3 部分 控制成分","i-lucide-git-branch","\u002Fch02\u002Fpart3","ch02\u002Fpart3\u002Findex",[194,195,199,203,207,211,215,219,223],{"title":189,"path":191,"stem":192,"icon":190},{"title":196,"path":197,"stem":198,"icon":190},"复合语句","\u002Fch02\u002Fpart3\u002Fcompound_statement","ch02\u002Fpart3\u002Fcompound_statement",{"title":200,"path":201,"stem":202,"icon":190},"for 语句","\u002Fch02\u002Fpart3\u002Ffor_statement","ch02\u002Fpart3\u002Ffor_statement",{"title":204,"path":205,"stem":206,"icon":190},"if 语句","\u002Fch02\u002Fpart3\u002Fif_statement","ch02\u002Fpart3\u002Fif_statement",{"title":208,"path":209,"stem":210,"icon":190},"跳转语句","\u002Fch02\u002Fpart3\u002Fjump_statement","ch02\u002Fpart3\u002Fjump_statement",{"title":212,"path":213,"stem":214,"icon":190},"空语句","\u002Fch02\u002Fpart3\u002Fnull_statement","ch02\u002Fpart3\u002Fnull_statement",{"title":216,"path":217,"stem":218,"icon":190},"作用域","\u002Fch02\u002Fpart3\u002Fscope","ch02\u002Fpart3\u002Fscope",{"title":220,"path":221,"stem":222,"icon":190},"switch 语句","\u002Fch02\u002Fpart3\u002Fswitch_statement","ch02\u002Fpart3\u002Fswitch_statement",{"title":224,"path":225,"stem":226,"icon":190},"while 语句","\u002Fch02\u002Fpart3\u002Fwhile_statement","ch02\u002Fpart3\u002Fwhile_statement",{"title":93,"path":228,"stem":229,"icon":102},"\u002Fch02\u002Fsummary","ch02\u002Fsummary",{"title":231,"icon":232,"path":233,"stem":234,"children":235},"第三章 过程式编程","i-lucide-function-square","\u002Fch03","ch03",[236,239,243,247,251,255,259,263,267],{"title":231,"path":233,"stem":237,"icon":238},"ch03\u002Findex","i-lucide-square-function",{"title":240,"path":241,"stem":242,"icon":232},"函数","\u002Fch03\u002Ffunction","ch03\u002Ffunction",{"title":244,"path":245,"stem":246,"icon":232},"函数的定义、声明和调用","\u002Fch03\u002Ffunction_definition","ch03\u002Ffunction_definition",{"title":248,"path":249,"stem":250,"icon":232},"函数的执行","\u002Fch03\u002Ffunction_execution","ch03\u002Ffunction_execution",{"title":252,"path":253,"stem":254,"icon":232},"初识函数","\u002Fch03\u002Ffunction_glance","ch03\u002Ffunction_glance",{"title":256,"path":257,"stem":258,"icon":232},"递归","\u002Fch03\u002Frecursion","ch03\u002Frecursion",{"title":260,"path":261,"stem":262,"icon":232},"重新认识 C++ 程序","\u002Fch03\u002Freview_cpp","ch03\u002Freview_cpp",{"title":264,"path":265,"stem":266,"icon":232},"再谈作用域","\u002Fch03\u002Fscope_again","ch03\u002Fscope_again",{"title":93,"path":268,"stem":269,"icon":232},"\u002Fch03\u002Fsummary","ch03\u002Fsummary",{"title":271,"icon":272,"path":273,"stem":274,"children":275},"第四章 POD 类型与结构","i-lucide-layers","\u002Fch04","ch04",[276,278,301,316,320,338,365,392,407,410],{"title":271,"path":273,"stem":277,"icon":272},"ch04\u002Findex",{"title":279,"icon":280,"path":281,"stem":282,"children":283},"数组","i-lucide-grid","\u002Fch04\u002Farray","ch04\u002Farray\u002Findex",[284,285,289,293,297],{"title":279,"path":281,"stem":282,"icon":280},{"title":286,"path":287,"stem":288,"icon":280},"二维数组","\u002Fch04\u002Farray\u002F2d_array","ch04\u002Farray\u002F2d_array",{"title":290,"path":291,"stem":292,"icon":280},"数组的定义和初始化","\u002Fch04\u002Farray\u002Farray_init","ch04\u002Farray\u002Farray_init",{"title":294,"path":295,"stem":296,"icon":280},"数组的用途","\u002Fch04\u002Farray\u002Farray_usage","ch04\u002Farray\u002Farray_usage",{"title":298,"path":299,"stem":300,"icon":280},"C 风格字符串","\u002Fch04\u002Farray\u002Fc_string","ch04\u002Farray\u002Fc_string",{"title":302,"icon":303,"path":304,"stem":305,"children":306},"迁移到 C 语言","i-lucide-arrow-right-left","\u002Fch04\u002Fcompare_with_c","ch04\u002Fcompare_with_c\u002Findex",[307,308,312],{"title":302,"path":304,"stem":305,"icon":303},{"title":309,"path":310,"stem":311,"icon":303},"需要注意的 C 特性","\u002Fch04\u002Fcompare_with_c\u002Fc_feature","ch04\u002Fcompare_with_c\u002Fc_feature",{"title":313,"path":314,"stem":315,"icon":303},"C 输入输出","\u002Fch04\u002Fcompare_with_c\u002Fc_io","ch04\u002Fcompare_with_c\u002Fc_io",{"title":317,"path":318,"stem":319,"icon":272},"枚举","\u002Fch04\u002Fenum","ch04\u002Fenum",{"title":321,"path":322,"stem":323,"children":324,"icon":326},"输入输出成分","\u002Fch04\u002Fio","ch04\u002Fio\u002Findex",[325,327,330,334],{"title":321,"path":322,"stem":323,"icon":326},"i-lucide-terminal",{"title":77,"path":328,"stem":329,"icon":326},"\u002Fch04\u002Fio\u002Finput","ch04\u002Fio\u002Finput",{"title":331,"path":332,"stem":333,"icon":326},"输入失败状态","\u002Fch04\u002Fio\u002Finput_fail","ch04\u002Fio\u002Finput_fail",{"title":335,"path":336,"stem":337,"icon":326},"输出","\u002Fch04\u002Fio\u002Foutput","ch04\u002Fio\u002Foutput",{"title":339,"icon":340,"path":341,"stem":342,"children":343},"链表","i-lucide-list","\u002Fch04\u002Flist","ch04\u002Flist\u002Findex",[344,345,349,353,357,361],{"title":339,"path":341,"stem":342,"icon":340},{"title":346,"path":347,"stem":348,"icon":340},"new[] 和 delete[]","\u002Fch04\u002Flist\u002Farr_new_del","ch04\u002Flist\u002Farr_new_del",{"title":350,"path":351,"stem":352,"icon":340},"链表的增删","\u002Fch04\u002Flist\u002Flist_add_del","ch04\u002Flist\u002Flist_add_del",{"title":354,"path":355,"stem":356,"icon":340},"链表的构建","\u002Fch04\u002Flist\u002Flist_construct","ch04\u002Flist\u002Flist_construct",{"title":358,"path":359,"stem":360,"icon":340},"安全性","\u002Fch04\u002Flist\u002Fsafety","ch04\u002Flist\u002Fsafety",{"title":362,"path":363,"stem":364,"icon":340},"存储期","\u002Fch04\u002Flist\u002Fstorage_duration","ch04\u002Flist\u002Fstorage_duration",{"title":366,"path":367,"stem":368,"children":369,"icon":371},"指针","\u002Fch04\u002Fpointer","ch04\u002Fpointer\u002Findex",[370,372,376,380,384,388],{"title":366,"path":367,"stem":368,"icon":371},"i-lucide-dot",{"title":373,"path":374,"stem":375,"icon":371},"何为指针","\u002Fch04\u002Fpointer\u002Fpointer","ch04\u002Fpointer\u002Fpointer",{"title":377,"path":378,"stem":379,"icon":371},"指针和数组","\u002Fch04\u002Fpointer\u002Fpointer_and_array","ch04\u002Fpointer\u002Fpointer_and_array",{"title":381,"path":382,"stem":383,"icon":371},"指针的定义 Ⅰ","\u002Fch04\u002Fpointer\u002Fpointer_def","ch04\u002Fpointer\u002Fpointer_def",{"title":385,"path":386,"stem":387,"icon":371},"指针的定义 Ⅱ","\u002Fch04\u002Fpointer\u002Fpointer_def_2","ch04\u002Fpointer\u002Fpointer_def_2",{"title":389,"path":390,"stem":391,"icon":371},"指针的简单使用","\u002Fch04\u002Fpointer\u002Fpointer_usage","ch04\u002Fpointer\u002Fpointer_usage",{"title":393,"path":394,"stem":395,"children":396,"icon":398},"结构体","\u002Fch04\u002Fstruct","ch04\u002Fstruct\u002Findex",[397,399,403],{"title":393,"path":394,"stem":395,"icon":398},"i-lucide-box",{"title":400,"path":401,"stem":402,"icon":398},"结构体的定义","\u002Fch04\u002Fstruct\u002Fstruct_def","ch04\u002Fstruct\u002Fstruct_def",{"title":404,"path":405,"stem":406,"icon":398},"结构体的使用","\u002Fch04\u002Fstruct\u002Fstruct_usage","ch04\u002Fstruct\u002Fstruct_usage",{"title":93,"path":408,"stem":409,"icon":272},"\u002Fch04\u002Fsummary","ch04\u002Fsummary",{"title":411,"path":412,"stem":413,"icon":272},"联合体","\u002Fch04\u002Funion","ch04\u002Funion",{"title":415,"icon":416,"path":417,"stem":418,"children":419},"第五章 初探面向对象","i-lucide-copy","\u002Fch05","ch05",[420,422,426,430,434,438,442,446,450,454],{"title":415,"path":417,"stem":421,"icon":416},"ch05\u002Findex",{"title":423,"path":424,"stem":425,"icon":416},"构造函数","\u002Fch05\u002Fconstructor","ch05\u002Fconstructor",{"title":427,"path":428,"stem":429,"icon":416},"复制构造函数","\u002Fch05\u002Fcopy_constructor","ch05\u002Fcopy_constructor",{"title":431,"path":432,"stem":433,"icon":416},"预置构造函数","\u002Fch05\u002Fdefaulted_constructor","ch05\u002Fdefaulted_constructor",{"title":435,"path":436,"stem":437,"icon":416},"例子：简单的字符串","\u002Fch05\u002Feasy_string","ch05\u002Feasy_string",{"title":439,"path":440,"stem":441,"icon":416},"收尾工作","\u002Fch05\u002Fmisc","ch05\u002Fmisc",{"title":443,"path":444,"stem":445,"icon":416},"重载","\u002Fch05\u002Foverload","ch05\u002Foverload",{"title":447,"path":448,"stem":449,"icon":416},"引用","\u002Fch05\u002Freference","ch05\u002Freference",{"title":451,"path":452,"stem":453,"icon":416},"浅复制与深复制","\u002Fch05\u002Fshallow_deep_copy","ch05\u002Fshallow_deep_copy",{"title":93,"path":455,"stem":456,"icon":416},"\u002Fch05\u002Fsummary","ch05\u002Fsummary",{"title":458,"icon":459,"path":460,"stem":461,"children":462},"第六章 运算符重载","i-lucide-component","\u002Fch06","ch06",[463,465,469,473,477,481,485,489,493,497,501,504],{"title":458,"path":460,"stem":464,"icon":459},"ch06\u002Findex",{"title":466,"path":467,"stem":468,"icon":459},"赋值运算符重载","\u002Fch06\u002Fassignment_overload","ch06\u002Fassignment_overload",{"title":470,"path":471,"stem":472,"icon":459},"赋值与初始化","\u002Fch06\u002Fassignment_vs_construct","ch06\u002Fassignment_vs_construct",{"title":474,"path":475,"stem":476,"icon":459},"类型转换重载","\u002Fch06\u002Fcast_overload","ch06\u002Fcast_overload",{"title":478,"path":479,"stem":480,"icon":459},"只读成员函数","\u002Fch06\u002Fconst_member_function","ch06\u002Fconst_member_function",{"title":482,"path":483,"stem":484,"icon":459},"友元","\u002Fch06\u002Ffriend","ch06\u002Ffriend",{"title":486,"path":487,"stem":488,"icon":459},"类外定义成员函数","\u002Fch06\u002Fnoninline_member_function","ch06\u002Fnoninline_member_function",{"title":490,"path":491,"stem":492,"icon":459},"非成员的运算符重载","\u002Fch06\u002Fnonmember_operator","ch06\u002Fnonmember_operator",{"title":494,"path":495,"stem":496,"icon":459},"特殊运算符重载","\u002Fch06\u002Fspecial_operator_overload","ch06\u002Fspecial_operator_overload",{"title":498,"path":499,"stem":500,"icon":459},"静态成员","\u002Fch06\u002Fstatic_member","ch06\u002Fstatic_member",{"title":93,"path":502,"stem":503,"icon":459},"\u002Fch06\u002Fsummary","ch06\u002Fsummary",{"title":505,"path":506,"stem":507,"icon":459},"`this` 指针","\u002Fch06\u002Fthis","ch06\u002Fthis",{"title":509,"path":510,"stem":511,"children":512,"icon":190},"第七章 继承与多态","\u002Fch07","ch07\u002Findex",[513,514,541,545,549,580],{"title":509,"path":510,"stem":511,"icon":190},{"title":515,"icon":516,"path":517,"stem":518,"children":519},"继承关系","i-lucide-share","\u002Fch07\u002Finheritance","ch07\u002Finheritance\u002Findex",[520,521,525,529,533,537],{"title":515,"path":517,"stem":518,"icon":516},{"title":522,"path":523,"stem":524,"icon":516},"关于成员名","\u002Fch07\u002Finheritance\u002Fabout_member_name","ch07\u002Finheritance\u002Fabout_member_name",{"title":526,"path":527,"stem":528,"icon":516},"派生类的构造","\u002Fch07\u002Finheritance\u002Fderived_constructor","ch07\u002Finheritance\u002Fderived_constructor",{"title":530,"path":531,"stem":532,"icon":516},"继承中的隐式转换","\u002Fch07\u002Finheritance\u002Fimplicit_cast_in_inheritance","ch07\u002Finheritance\u002Fimplicit_cast_in_inheritance",{"title":534,"path":535,"stem":536,"icon":516},"其它小问题","\u002Fch07\u002Finheritance\u002Fmisc","ch07\u002Finheritance\u002Fmisc",{"title":538,"path":539,"stem":540,"icon":516},"保护成员","\u002Fch07\u002Finheritance\u002Fprotected_member","ch07\u002Finheritance\u002Fprotected_member",{"title":542,"path":543,"stem":544,"icon":190},"多重继承","\u002Fch07\u002Fmi","ch07\u002Fmi",{"title":546,"path":547,"stem":548,"icon":190},"简单的对象关系","\u002Fch07\u002Fobject_relationships","ch07\u002Fobject_relationships",{"title":550,"icon":551,"path":552,"stem":553,"children":554},"多态","i-lucide-refresh","\u002Fch07\u002Fpolymorphism","ch07\u002Fpolymorphism\u002Findex",[555,556,560,564,568,572,576],{"title":550,"path":552,"stem":553,"icon":551},{"title":557,"path":558,"stem":559,"icon":551},"抽象类","\u002Fch07\u002Fpolymorphism\u002Fabstract_class","ch07\u002Fpolymorphism\u002Fabstract_class",{"title":561,"path":562,"stem":563,"icon":551},"C++ 风格类型转换","\u002Fch07\u002Fpolymorphism\u002Fcpp_cast","ch07\u002Fpolymorphism\u002Fcpp_cast",{"title":565,"path":566,"stem":567,"icon":551},"`override` 与 `final`","\u002Fch07\u002Fpolymorphism\u002Foverride_and_final","ch07\u002Fpolymorphism\u002Foverride_and_final",{"title":569,"path":570,"stem":571,"icon":551},"RTTI","\u002Fch07\u002Fpolymorphism\u002Frtti","ch07\u002Fpolymorphism\u002Frtti",{"title":573,"path":574,"stem":575,"icon":551},"虚析构函数","\u002Fch07\u002Fpolymorphism\u002Fvirtual_destructor","ch07\u002Fpolymorphism\u002Fvirtual_destructor",{"title":577,"path":578,"stem":579,"icon":551},"虚函数","\u002Fch07\u002Fpolymorphism\u002Fvirtual_function","ch07\u002Fpolymorphism\u002Fvirtual_function",{"title":93,"path":581,"stem":582,"icon":190},"\u002Fch07\u002Fsummary","ch07\u002Fsummary",{"title":584,"icon":585,"path":586,"stem":587,"children":588},"第八章 模板基础","i-lucide-layout-template","\u002Fch08","ch08",[589,591,595,599,603,607,646],{"title":584,"path":586,"stem":590,"icon":585},"ch08\u002Findex",{"title":592,"path":593,"stem":594,"icon":585},"类模板","\u002Fch08\u002Fclass_template","ch08\u002Fclass_template",{"title":596,"path":597,"stem":598,"icon":585},"默认实参","\u002Fch08\u002Fdefault_argument","ch08\u002Fdefault_argument",{"title":600,"path":601,"stem":602,"icon":585},"函数模板","\u002Fch08\u002Ffunction_template","ch08\u002Ffunction_template",{"title":604,"path":605,"stem":606,"icon":585},"非类型模板参数","\u002Fch08\u002Fnontype_template_param","ch08\u002Fnontype_template_param",{"title":608,"icon":609,"path":610,"stem":611,"children":612},"STL 容器和迭代器","i-lucide-container","\u002Fch08\u002Fstl_containers","ch08\u002Fstl_containers\u002Findex",[613,614,618,622,626,630,634,638,642],{"title":608,"path":610,"stem":611,"icon":609},{"title":615,"path":616,"stem":617,"icon":609},"容器适配器","\u002Fch08\u002Fstl_containers\u002Fadaptors","ch08\u002Fstl_containers\u002Fadaptors",{"title":619,"path":620,"stem":621,"icon":609},"迭代器的概念","\u002Fch08\u002Fstl_containers\u002Fiterator_concept","ch08\u002Fstl_containers\u002Fiterator_concept",{"title":623,"path":624,"stem":625,"icon":609},"初识迭代器","\u002Fch08\u002Fstl_containers\u002Fiterator_glance","ch08\u002Fstl_containers\u002Fiterator_glance",{"title":627,"path":628,"stem":629,"icon":609},"迭代器的用途","\u002Fch08\u002Fstl_containers\u002Fiterator_usage","ch08\u002Fstl_containers\u002Fiterator_usage",{"title":631,"path":632,"stem":633,"icon":609},"`std::map`","\u002Fch08\u002Fstl_containers\u002Fmap","ch08\u002Fstl_containers\u002Fmap",{"title":635,"path":636,"stem":637,"icon":609},"其它顺序容器","\u002Fch08\u002Fstl_containers\u002Fother_sequence","ch08\u002Fstl_containers\u002Fother_sequence",{"title":639,"path":640,"stem":641,"icon":609},"`std::set`","\u002Fch08\u002Fstl_containers\u002Fset","ch08\u002Fstl_containers\u002Fset",{"title":643,"path":644,"stem":645,"icon":609},"`std::vector`","\u002Fch08\u002Fstl_containers\u002Fvector","ch08\u002Fstl_containers\u002Fvector",{"title":93,"path":647,"stem":648,"icon":585},"\u002Fch08\u002Fsummary","ch08\u002Fsummary",{"title":650,"icon":651,"path":652,"stem":653,"children":654},"第九章 链接","i-lucide-link","\u002Fch09","ch09",[655,657,661,665,669,673,677,681],{"title":650,"path":652,"stem":656,"icon":651},"ch09\u002Findex",{"title":658,"path":659,"stem":660,"icon":651},"C 中的链接","\u002Fch09\u002Fc_linking","ch09\u002Fc_linking",{"title":662,"path":663,"stem":664,"icon":651},"多文件编译实践","\u002Fch09\u002Fcompile_multiple_files","ch09\u002Fcompile_multiple_files",{"title":666,"path":667,"stem":668,"icon":651},"模板中的友元","\u002Fch09\u002Ffriend_in_template","ch09\u002Ffriend_in_template",{"title":670,"path":671,"stem":672,"icon":651},"内联","\u002Fch09\u002Finline","ch09\u002Finline",{"title":674,"path":675,"stem":676,"icon":651},"单一定义原则","\u002Fch09\u002Fodr","ch09\u002Fodr",{"title":678,"path":679,"stem":680,"icon":651},"符号和连接","\u002Fch09\u002Fsymbol_and_linkage","ch09\u002Fsymbol_and_linkage",{"title":682,"path":683,"stem":684,"icon":651},"模板的链接","\u002Fch09\u002Ftemplate_linking","ch09\u002Ftemplate_linking",{"title":686,"icon":687,"path":688,"stem":689,"children":690},"第十章 常用库介绍 \u003CBadge type=\"warning\" text=\"TBC\" \u002F>","i-lucide-hard-drive","\u002Fch10","ch10",[691,694,717,732,736,740],{"title":692,"path":688,"stem":693,"icon":687},"第十章 常用库介绍","ch10\u002Findex",{"title":695,"icon":696,"path":697,"stem":698,"children":699},"代数数据类型","i-lucide-shapes","\u002Fch10\u002Fadt","ch10\u002Fadt\u002Findex",[700,701,705,709,713],{"title":695,"path":697,"stem":698,"icon":696},{"title":702,"path":703,"stem":704,"icon":696},"顶类型 `std::any`","\u002Fch10\u002Fadt\u002Fany","ch10\u002Fadt\u002Fany",{"title":706,"path":707,"stem":708,"icon":696},"底类型","\u002Fch10\u002Fadt\u002Fnoreturn","ch10\u002Fadt\u002Fnoreturn",{"title":710,"path":711,"stem":712,"icon":696},"通用积类型 `std::tuple`","\u002Fch10\u002Fadt\u002Ftuple","ch10\u002Fadt\u002Ftuple",{"title":714,"path":715,"stem":716,"icon":696},"通用和类型 `std::variant`","\u002Fch10\u002Fadt\u002Fvariant","ch10\u002Fadt\u002Fvariant",{"title":718,"icon":719,"path":720,"stem":721,"children":722},"文件读写","i-lucide-file-text","\u002Fch10\u002Ffile_io","ch10\u002Ffile_io\u002Findex",[723,724,728],{"title":718,"path":720,"stem":721,"icon":719},{"title":725,"path":726,"stem":727,"icon":719},"C 风格输入输出","\u002Fch10\u002Ffile_io\u002Fc_io","ch10\u002Ffile_io\u002Fc_io",{"title":729,"path":730,"stem":731,"icon":719},"流式输入输出","\u002Fch10\u002Ffile_io\u002Fstream","ch10\u002Ffile_io\u002Fstream",{"title":733,"path":734,"stem":735,"icon":687},"文件系统","\u002Fch10\u002Ffilesystem","ch10\u002Ffilesystem",{"title":737,"path":738,"stem":739,"icon":687},"伪随机数生成","\u002Fch10\u002Frandom","ch10\u002Frandom",{"title":741,"path":742,"stem":743,"children":744,"icon":746},"移动语义与智能指针","\u002Fch10\u002Fsmart_pointer","ch10\u002Fsmart_pointer\u002Findex",[745,747,751,755,759,763],{"title":741,"path":742,"stem":743,"icon":746},"i-lucide-pointer",{"title":748,"path":749,"stem":750,"icon":746},"`std::move` 与转发引用","\u002Fch10\u002Fsmart_pointer\u002Fmove_and_forward","ch10\u002Fsmart_pointer\u002Fmove_and_forward",{"title":752,"path":753,"stem":754,"icon":746},"所有权","\u002Fch10\u002Fsmart_pointer\u002Fownership","ch10\u002Fsmart_pointer\u002Fownership",{"title":756,"path":757,"stem":758,"icon":746},"右值引用","\u002Fch10\u002Fsmart_pointer\u002Frvalue_reference","ch10\u002Fsmart_pointer\u002Frvalue_reference",{"title":760,"path":761,"stem":762,"icon":746},"`std::shared_ptr`","\u002Fch10\u002Fsmart_pointer\u002Fshared_ptr","ch10\u002Fsmart_pointer\u002Fshared_ptr",{"title":764,"path":765,"stem":766,"icon":746},"特殊成员函数","\u002Fch10\u002Fsmart_pointer\u002Fspecial_member_function","ch10\u002Fsmart_pointer\u002Fspecial_member_function",{"title":768,"icon":769,"path":770,"stem":771,"children":772},"第十一章 函数式编程","i-lucide-sparkles","\u002Fch11","ch11",[773,775,794,821,825],{"title":768,"path":770,"stem":774,"icon":769},"ch11\u002Findex",{"title":776,"icon":777,"path":778,"stem":779,"children":780},"语法进阶","i-lucide-graduation-cap","\u002Fch11\u002Fadvanced","ch11\u002Fadvanced\u002Findex",[781,782,786,790],{"title":776,"path":778,"stem":779,"icon":777},{"title":783,"path":784,"stem":785,"icon":777},"实参依赖查找","\u002Fch11\u002Fadvanced\u002Fadl","ch11\u002Fadvanced\u002Fadl",{"title":787,"path":788,"stem":789,"icon":777},"可调用","\u002Fch11\u002Fadvanced\u002Fcallable","ch11\u002Fadvanced\u002Fcallable",{"title":791,"path":792,"stem":793,"icon":777},"预置比较","\u002Fch11\u002Fadvanced\u002Fdefaulted_compare","ch11\u002Fadvanced\u002Fdefaulted_compare",{"title":795,"icon":796,"path":797,"stem":798,"children":799},"语法基础","i-lucide-book-text","\u002Fch11\u002Fgrammar","ch11\u002Fgrammar\u002Findex",[800,801,805,809,813,817],{"title":795,"path":797,"stem":798,"icon":796},{"title":802,"path":803,"stem":804,"icon":796},"闭包","\u002Fch11\u002Fgrammar\u002Fclosure","ch11\u002Fgrammar\u002Fclosure",{"title":806,"path":807,"stem":808,"icon":796},"函数也即对象","\u002Fch11\u002Fgrammar\u002Ffunction_as_object","ch11\u002Fgrammar\u002Ffunction_as_object",{"title":810,"path":811,"stem":812,"icon":796},"高阶函数","\u002Fch11\u002Fgrammar\u002Fhigher_order_function","ch11\u002Fgrammar\u002Fhigher_order_function",{"title":814,"path":815,"stem":816,"icon":796},"Lambda 表达式","\u002Fch11\u002Fgrammar\u002Flambda","ch11\u002Fgrammar\u002Flambda",{"title":818,"path":819,"stem":820,"icon":796},"Lambda 表达式捕获","\u002Fch11\u002Fgrammar\u002Flambda_capture","ch11\u002Fgrammar\u002Flambda_capture",{"title":822,"path":823,"stem":824,"icon":769},"`std::sort`","\u002Fch11\u002Fstd_sort","ch11\u002Fstd_sort",{"title":826,"icon":827,"path":828,"stem":829,"children":830},"STL 算法","i-lucide-sort-asc","\u002Fch11\u002Fstl_algorithms","ch11\u002Fstl_algorithms\u002Findex",[831,832,836,840,844,848,852,856,860],{"title":826,"path":828,"stem":829,"icon":827},{"title":833,"path":834,"stem":835,"icon":827},"迁移到 STLv1","\u002Fch11\u002Fstl_algorithms\u002Fcompare_with_legacy","ch11\u002Fstl_algorithms\u002Fcompare_with_legacy",{"title":837,"path":838,"stem":839,"icon":827},"复制","\u002Fch11\u002Fstl_algorithms\u002Fcopy","ch11\u002Fstl_algorithms\u002Fcopy",{"title":841,"path":842,"stem":843,"icon":827},"筛选","\u002Fch11\u002Fstl_algorithms\u002Ffilter","ch11\u002Fstl_algorithms\u002Ffilter",{"title":845,"path":846,"stem":847,"icon":827},"其它算法","\u002Fch11\u002Fstl_algorithms\u002Fothers","ch11\u002Fstl_algorithms\u002Fothers",{"title":849,"path":850,"stem":851,"icon":827},"初识范围","\u002Fch11\u002Fstl_algorithms\u002Frange","ch11\u002Fstl_algorithms\u002Frange",{"title":853,"path":854,"stem":855,"icon":827},"归约","\u002Fch11\u002Fstl_algorithms\u002Freduce","ch11\u002Fstl_algorithms\u002Freduce",{"title":857,"path":858,"stem":859,"icon":827},"排序","\u002Fch11\u002Fstl_algorithms\u002Fsort","ch11\u002Fstl_algorithms\u002Fsort",{"title":861,"path":862,"stem":863,"icon":827},"变换","\u002Fch11\u002Fstl_algorithms\u002Ftransform","ch11\u002Fstl_algorithms\u002Ftransform",{"title":865,"icon":866,"path":867,"stem":868,"children":869},"第十二章 模板","i-lucide-git-fork","\u002Fch12","ch12",[870,873,877,881,885],{"title":871,"path":867,"stem":872,"icon":866},"第十二章 模板进阶","ch12\u002Findex",{"title":874,"path":875,"stem":876},"C++20 概念","\u002Fch12\u002Fconcepts","ch12\u002Fconcepts",{"title":878,"path":879,"stem":880},"模板元编程","\u002Fch12\u002Fmetaprogramming","ch12\u002Fmetaprogramming",{"title":882,"path":883,"stem":884},"模板特化与偏特化","\u002Fch12\u002Fspecialization","ch12\u002Fspecialization",{"title":886,"icon":887,"path":888,"stem":889,"children":890},"静态派发","i-lucide-route","\u002Fch12\u002Fstatic_dispatch","ch12\u002Fstatic_dispatch\u002Findex",[891,892,896],{"title":886,"path":888,"stem":889},{"title":893,"path":894,"stem":895},"定制点","\u002Fch12\u002Fstatic_dispatch\u002Fcustomize_point","ch12\u002Fstatic_dispatch\u002Fcustomize_point",{"title":897,"path":898,"stem":899},"类型擦除","\u002Fch12\u002Fstatic_dispatch\u002Ftype_erasure","ch12\u002Fstatic_dispatch\u002Ftype_erasure",{"title":901,"path":902,"stem":903,"icon":6},"后记","\u002Fpostscript","postscript",{"title":905,"path":906,"stem":907,"icon":908},"技术信息","\u002Ftechnical_info","technical_info","i-lucide-info",{"id":910,"title":756,"body":911,"description":756,"extension":6359,"links":6360,"meta":6361,"navigation":6362,"path":757,"seo":6363,"stem":758,"__hash__":6364},"docs\u002Fch10\u002Fsmart_pointer\u002Frvalue_reference.md",{"type":912,"value":913,"toc":6354},"minimark",[914,917,921,934,942,946,949,957,2651,2688,2704,2731,2734,2740,2749,2759,2765,4330,4343,4366,4377,6014,6017,6024,6027,6088,6091,6139,6145,6262,6276,6284,6323,6340,6350],[915,916,756],"h1",{"id":756},[918,919,920],"p",{},"接下来我们要更深入了：请确保在阅读此节之前对以下值类别有一定程度的认识：",[922,923,924,928,931],"ul",{},[925,926,927],"li",{},"左值（可取地址）；右值（不可取地址）；",[925,929,930],{},"泛左值（有所关联的实体）；纯右值（没有被“求值”的裸表达式）；",[925,932,933],{},"亡值（泛左值+右值）。",[918,935,936,937,941],{},"如果没有，请再仔细阅读一下",[938,939,940],"a",{"href":742},"之前这一节介绍","。实在搞不明白可以发邮件问我看看。",[943,944,945],"h2",{"id":945},"移动语义",[918,947,948],{},"正因为所有的纯右值都没有身份，所以纯右值在它的整个生命中只会发挥一次作用——被用来作初始化器或者操作数的那一瞬间。这一瞬间也可能会发生临时量实质化，使得这个纯右值拥有非常短暂的实体。总之，纯右值或者亡值的特点就是转瞬即逝，用一次之后一般就再也用不上了。",[918,950,951,952,956],{},"我们将目光退回到第五、六章的自制 ",[953,954,955],"code",{},"String"," 例子中。",[958,959,964],"pre",{"className":960,"code":961,"language":962,"meta":963,"style":963},"language-cpp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","#include \u003Ccstring>\n#include \u003Ciostream>\nclass String {\nprivate:\n    unsigned len;\n    char* str;\n    friend std::ostream& operator\u003C\u003C(std::ostream&, const String&);\n    friend String operator+(const String&, const String&);\n\npublic:\n    static constexpr unsigned npos{4294967295};\n\n    String() {\n        len = 0;\n        str = new char[1]{'\\0'};\n    }\n    String(const String& initVal) {\n        len = initVal.len;\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++)\n            str[i] = initVal.str[i];\n    }\n    String(const char* initVal) {\n        len = std::strlen(initVal);\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++)\n            str[i] = initVal[i];\n    }\n    String(unsigned num, char c) {\n        len = num;\n        str = new char[num + 1];\n        for (unsigned i{0}; i \u003C= num; i++)\n            str[i] = c;\n        str[num] = '\\0';\n    }\n    ~String() {\n        delete[] str;\n    }\n\n    char& operator[](\u002Funsigned pos) {\n        return str[pos];\n    }\n    const char& operator[](\u002Funsigned pos) const {\n        return str[pos];\n    }\n    String& operator+=(const String& b) {\n        *this = *this + b;\n        return *this; \n    }\n    String& operator=(const String& assignVal) {\n        if (str == assignVal.str) return *this;\n        delete[] str;\n        len = assignVal.len;\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++) {\n            str[i] = assignVal.str[i];\n        }\n        return *this;\n    }\n    bool operator==(const String& rhs) const {\n        if (len != rhs.len) return false;\n        for (unsigned i{0}; i \u003C len; i++) {\n            if (str[i] != rhs.str[i])\n                return false;\n        }\n        return true;\n    }\n    explicit operator bool() const {\n        if (len == 0) return false;\n        else return true;\n    }\n\n    unsigned length() {\n        return len;\n    }\n\n    unsigned find(char c) {\n        for (unsigned i{0}; i \u003C= len; i++) {\n            if (c == str[i]) return i;\n        }\n        return npos;\n    }\n};\nString operator+(const String& a, const String& b) {\n    char* newstr{new char[a.len + b.len + 1]};\n    std::strcpy(newstr, a.str);\n    std::strcpy(newstr + a.len, b.str);\n    String result(newstr);\n    delete[] newstr;\n    return result;\n}\nstd::ostream& operator\u003C\u003C(std::ostream& os, const String& b) {\n    os \u003C\u003C b.str;\n    return os;\n}\n\nint main() {\n    String a(\"abc\"), b(\"def\"), c;\n    c = a + b;\n    std::cout \u003C\u003C c \u003C\u003C std::endl;\n}\n","cpp","",[953,965,966,986,998,1012,1021,1034,1048,1098,1129,1136,1144,1168,1173,1185,1199,1233,1239,1261,1278,1302,1342,1372,1377,1395,1416,1437,1466,1487,1492,1515,1526,1548,1577,1594,1618,1623,1633,1643,1648,1653,1676,1691,1696,1721,1734,1739,1766,1784,1795,1800,1826,1854,1863,1878,1899,1931,1956,1962,1969,1974,2001,2026,2058,2090,2098,2103,2111,2116,2133,2152,2162,2167,2172,2184,2193,2198,2203,2222,2253,2280,2285,2294,2299,2304,2338,2376,2402,2434,2449,2459,2470,2476,2518,2534,2543,2548,2553,2566,2603,2620,2646],{"__ignoreMap":963},[967,968,971,975,979,983],"span",{"class":969,"line":970},"line",1,[967,972,974],{"class":973},"s7zQu","#include",[967,976,978],{"class":977},"sMK4o"," \u003C",[967,980,982],{"class":981},"sfazB","cstring",[967,984,985],{"class":977},">\n",[967,987,989,991,993,996],{"class":969,"line":988},2,[967,990,974],{"class":973},[967,992,978],{"class":977},[967,994,995],{"class":981},"iostream",[967,997,985],{"class":977},[967,999,1001,1005,1009],{"class":969,"line":1000},3,[967,1002,1004],{"class":1003},"spNyl","class",[967,1006,1008],{"class":1007},"sBMFI"," String",[967,1010,1011],{"class":977}," {\n",[967,1013,1015,1018],{"class":969,"line":1014},4,[967,1016,1017],{"class":1003},"private",[967,1019,1020],{"class":977},":\n",[967,1022,1024,1027,1031],{"class":969,"line":1023},5,[967,1025,1026],{"class":1003},"    unsigned",[967,1028,1030],{"class":1029},"swJcz"," len",[967,1032,1033],{"class":977},";\n",[967,1035,1037,1040,1043,1046],{"class":969,"line":1036},6,[967,1038,1039],{"class":1003},"    char",[967,1041,1042],{"class":977},"*",[967,1044,1045],{"class":1029}," str",[967,1047,1033],{"class":977},[967,1049,1051,1054,1057,1060,1063,1066,1070,1073,1076,1079,1081,1083,1085,1088,1091,1093,1095],{"class":969,"line":1050},7,[967,1052,1053],{"class":1003},"    friend",[967,1055,1056],{"class":1007}," std",[967,1058,1059],{"class":977},"::",[967,1061,1062],{"class":1007},"ostream",[967,1064,1065],{"class":1003},"&",[967,1067,1069],{"class":1068},"sbssI"," operator",[967,1071,1072],{"class":1007},"\u003C\u003C",[967,1074,1075],{"class":977},"(",[967,1077,1078],{"class":1007},"std",[967,1080,1059],{"class":977},[967,1082,1062],{"class":1007},[967,1084,1065],{"class":1003},[967,1086,1087],{"class":977},",",[967,1089,1090],{"class":1003}," const",[967,1092,1008],{"class":1007},[967,1094,1065],{"class":1003},[967,1096,1097],{"class":977},");\n",[967,1099,1101,1103,1105,1107,1110,1112,1115,1117,1119,1121,1123,1125,1127],{"class":969,"line":1100},8,[967,1102,1053],{"class":1003},[967,1104,1008],{"class":1007},[967,1106,1069],{"class":1068},[967,1108,1109],{"class":1007},"+",[967,1111,1075],{"class":977},[967,1113,1114],{"class":1003},"const",[967,1116,1008],{"class":1007},[967,1118,1065],{"class":1003},[967,1120,1087],{"class":977},[967,1122,1090],{"class":1003},[967,1124,1008],{"class":1007},[967,1126,1065],{"class":1003},[967,1128,1097],{"class":977},[967,1130,1132],{"class":969,"line":1131},9,[967,1133,1135],{"emptyLinePlaceholder":1134},true,"\n",[967,1137,1139,1142],{"class":969,"line":1138},10,[967,1140,1141],{"class":1003},"public",[967,1143,1020],{"class":977},[967,1145,1147,1150,1153,1156,1159,1162,1165],{"class":969,"line":1146},11,[967,1148,1149],{"class":1003},"    static",[967,1151,1152],{"class":1003}," constexpr",[967,1154,1155],{"class":1003}," unsigned",[967,1157,1158],{"class":1029}," npos",[967,1160,1161],{"class":977},"{",[967,1163,1164],{"class":1068},"4294967295",[967,1166,1167],{"class":977},"};\n",[967,1169,1171],{"class":969,"line":1170},12,[967,1172,1135],{"emptyLinePlaceholder":1134},[967,1174,1176,1180,1183],{"class":969,"line":1175},13,[967,1177,1179],{"class":1178},"s2Zo4","    String",[967,1181,1182],{"class":977},"()",[967,1184,1011],{"class":977},[967,1186,1188,1191,1194,1197],{"class":969,"line":1187},14,[967,1189,1190],{"class":1029},"        len ",[967,1192,1193],{"class":977},"=",[967,1195,1196],{"class":1068}," 0",[967,1198,1033],{"class":977},[967,1200,1202,1205,1207,1210,1213,1216,1219,1222,1225,1229,1231],{"class":969,"line":1201},15,[967,1203,1204],{"class":1029},"        str ",[967,1206,1193],{"class":977},[967,1208,1209],{"class":977}," new",[967,1211,1212],{"class":1003}," char",[967,1214,1215],{"class":977},"[",[967,1217,1218],{"class":1068},"1",[967,1220,1221],{"class":977},"]{",[967,1223,1224],{"class":977},"'",[967,1226,1228],{"class":1227},"sTEyZ","\\0",[967,1230,1224],{"class":977},[967,1232,1167],{"class":977},[967,1234,1236],{"class":969,"line":1235},16,[967,1237,1238],{"class":977},"    }\n",[967,1240,1242,1244,1246,1248,1250,1252,1256,1259],{"class":969,"line":1241},17,[967,1243,1179],{"class":1178},[967,1245,1075],{"class":977},[967,1247,1114],{"class":1003},[967,1249,1008],{"class":1007},[967,1251,1065],{"class":1003},[967,1253,1255],{"class":1254},"sHdIc"," initVal",[967,1257,1258],{"class":977},")",[967,1260,1011],{"class":977},[967,1262,1264,1266,1268,1270,1273,1276],{"class":969,"line":1263},18,[967,1265,1190],{"class":1029},[967,1267,1193],{"class":977},[967,1269,1255],{"class":1227},[967,1271,1272],{"class":977},".",[967,1274,1275],{"class":1227},"len",[967,1277,1033],{"class":977},[967,1279,1281,1283,1285,1287,1289,1291,1294,1296,1299],{"class":969,"line":1280},19,[967,1282,1204],{"class":1029},[967,1284,1193],{"class":977},[967,1286,1209],{"class":977},[967,1288,1212],{"class":1003},[967,1290,1215],{"class":977},[967,1292,1293],{"class":1029},"len ",[967,1295,1109],{"class":977},[967,1297,1298],{"class":1068}," 1",[967,1300,1301],{"class":977},"];\n",[967,1303,1305,1308,1311,1314,1317,1320,1323,1326,1329,1332,1334,1336,1339],{"class":969,"line":1304},20,[967,1306,1307],{"class":973},"        for",[967,1309,1310],{"class":977}," (",[967,1312,1313],{"class":1003},"unsigned",[967,1315,1316],{"class":1029}," i{",[967,1318,1319],{"class":1068},"0",[967,1321,1322],{"class":1029},"}",[967,1324,1325],{"class":977},";",[967,1327,1328],{"class":1029}," i ",[967,1330,1331],{"class":977},"\u003C=",[967,1333,1030],{"class":1029},[967,1335,1325],{"class":977},[967,1337,1338],{"class":1029}," i",[967,1340,1341],{"class":977},"++)\n",[967,1343,1345,1348,1350,1353,1356,1359,1361,1363,1366,1368,1370],{"class":969,"line":1344},21,[967,1346,1347],{"class":1227},"            str",[967,1349,1215],{"class":977},[967,1351,1352],{"class":1029},"i",[967,1354,1355],{"class":977},"]",[967,1357,1358],{"class":977}," =",[967,1360,1255],{"class":1227},[967,1362,1272],{"class":977},[967,1364,1365],{"class":1227},"str",[967,1367,1215],{"class":977},[967,1369,1352],{"class":1029},[967,1371,1301],{"class":977},[967,1373,1375],{"class":969,"line":1374},22,[967,1376,1238],{"class":977},[967,1378,1380,1382,1384,1386,1389,1391,1393],{"class":969,"line":1379},23,[967,1381,1179],{"class":1178},[967,1383,1075],{"class":977},[967,1385,1114],{"class":1003},[967,1387,1388],{"class":1003}," char*",[967,1390,1255],{"class":1254},[967,1392,1258],{"class":977},[967,1394,1011],{"class":977},[967,1396,1398,1400,1402,1404,1406,1409,1411,1414],{"class":969,"line":1397},24,[967,1399,1190],{"class":1029},[967,1401,1193],{"class":977},[967,1403,1056],{"class":1007},[967,1405,1059],{"class":977},[967,1407,1408],{"class":1178},"strlen",[967,1410,1075],{"class":977},[967,1412,1413],{"class":1029},"initVal",[967,1415,1097],{"class":977},[967,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435],{"class":969,"line":1418},25,[967,1420,1204],{"class":1029},[967,1422,1193],{"class":977},[967,1424,1209],{"class":977},[967,1426,1212],{"class":1003},[967,1428,1215],{"class":977},[967,1430,1293],{"class":1029},[967,1432,1109],{"class":977},[967,1434,1298],{"class":1068},[967,1436,1301],{"class":977},[967,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464],{"class":969,"line":1439},26,[967,1441,1307],{"class":973},[967,1443,1310],{"class":977},[967,1445,1313],{"class":1003},[967,1447,1316],{"class":1029},[967,1449,1319],{"class":1068},[967,1451,1322],{"class":1029},[967,1453,1325],{"class":977},[967,1455,1328],{"class":1029},[967,1457,1331],{"class":977},[967,1459,1030],{"class":1029},[967,1461,1325],{"class":977},[967,1463,1338],{"class":1029},[967,1465,1341],{"class":977},[967,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485],{"class":969,"line":1468},27,[967,1470,1347],{"class":1227},[967,1472,1215],{"class":977},[967,1474,1352],{"class":1029},[967,1476,1355],{"class":977},[967,1478,1358],{"class":977},[967,1480,1255],{"class":1227},[967,1482,1215],{"class":977},[967,1484,1352],{"class":1029},[967,1486,1301],{"class":977},[967,1488,1490],{"class":969,"line":1489},28,[967,1491,1238],{"class":977},[967,1493,1495,1497,1499,1501,1504,1506,1508,1511,1513],{"class":969,"line":1494},29,[967,1496,1179],{"class":1178},[967,1498,1075],{"class":977},[967,1500,1313],{"class":1003},[967,1502,1503],{"class":1254}," num",[967,1505,1087],{"class":977},[967,1507,1212],{"class":1003},[967,1509,1510],{"class":1254}," c",[967,1512,1258],{"class":977},[967,1514,1011],{"class":977},[967,1516,1518,1520,1522,1524],{"class":969,"line":1517},30,[967,1519,1190],{"class":1029},[967,1521,1193],{"class":977},[967,1523,1503],{"class":1029},[967,1525,1033],{"class":977},[967,1527,1529,1531,1533,1535,1537,1539,1542,1544,1546],{"class":969,"line":1528},31,[967,1530,1204],{"class":1029},[967,1532,1193],{"class":977},[967,1534,1209],{"class":977},[967,1536,1212],{"class":1003},[967,1538,1215],{"class":977},[967,1540,1541],{"class":1029},"num ",[967,1543,1109],{"class":977},[967,1545,1298],{"class":1068},[967,1547,1301],{"class":977},[967,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575],{"class":969,"line":1550},32,[967,1552,1307],{"class":973},[967,1554,1310],{"class":977},[967,1556,1313],{"class":1003},[967,1558,1316],{"class":1029},[967,1560,1319],{"class":1068},[967,1562,1322],{"class":1029},[967,1564,1325],{"class":977},[967,1566,1328],{"class":1029},[967,1568,1331],{"class":977},[967,1570,1503],{"class":1029},[967,1572,1325],{"class":977},[967,1574,1338],{"class":1029},[967,1576,1341],{"class":977},[967,1578,1580,1582,1584,1586,1588,1590,1592],{"class":969,"line":1579},33,[967,1581,1347],{"class":1227},[967,1583,1215],{"class":977},[967,1585,1352],{"class":1029},[967,1587,1355],{"class":977},[967,1589,1358],{"class":977},[967,1591,1510],{"class":1029},[967,1593,1033],{"class":977},[967,1595,1597,1600,1602,1605,1607,1609,1612,1614,1616],{"class":969,"line":1596},34,[967,1598,1599],{"class":1227},"        str",[967,1601,1215],{"class":977},[967,1603,1604],{"class":1029},"num",[967,1606,1355],{"class":977},[967,1608,1358],{"class":977},[967,1610,1611],{"class":977}," '",[967,1613,1228],{"class":1227},[967,1615,1224],{"class":977},[967,1617,1033],{"class":977},[967,1619,1621],{"class":969,"line":1620},35,[967,1622,1238],{"class":977},[967,1624,1626,1629,1631],{"class":969,"line":1625},36,[967,1627,1628],{"class":1178},"    ~String",[967,1630,1182],{"class":977},[967,1632,1011],{"class":977},[967,1634,1636,1639,1641],{"class":969,"line":1635},37,[967,1637,1638],{"class":977},"        delete[]",[967,1640,1045],{"class":1029},[967,1642,1033],{"class":977},[967,1644,1646],{"class":969,"line":1645},38,[967,1647,1238],{"class":977},[967,1649,1651],{"class":969,"line":1650},39,[967,1652,1135],{"emptyLinePlaceholder":1134},[967,1654,1656,1659,1661,1664,1667,1669,1672,1674],{"class":969,"line":1655},40,[967,1657,1658],{"class":1003},"    char&",[967,1660,1069],{"class":1068},[967,1662,1663],{"class":1007},"[]",[967,1665,1666],{"class":977},"(\u002F",[967,1668,1313],{"class":1003},[967,1670,1671],{"class":1254}," pos",[967,1673,1258],{"class":977},[967,1675,1011],{"class":977},[967,1677,1679,1682,1684,1686,1689],{"class":969,"line":1678},41,[967,1680,1681],{"class":973},"        return",[967,1683,1045],{"class":1227},[967,1685,1215],{"class":977},[967,1687,1688],{"class":1029},"pos",[967,1690,1301],{"class":977},[967,1692,1694],{"class":969,"line":1693},42,[967,1695,1238],{"class":977},[967,1697,1699,1702,1705,1707,1709,1711,1713,1715,1717,1719],{"class":969,"line":1698},43,[967,1700,1701],{"class":1003},"    const",[967,1703,1704],{"class":1003}," char&",[967,1706,1069],{"class":1068},[967,1708,1663],{"class":1007},[967,1710,1666],{"class":977},[967,1712,1313],{"class":1003},[967,1714,1671],{"class":1254},[967,1716,1258],{"class":977},[967,1718,1090],{"class":1003},[967,1720,1011],{"class":977},[967,1722,1724,1726,1728,1730,1732],{"class":969,"line":1723},44,[967,1725,1681],{"class":973},[967,1727,1045],{"class":1227},[967,1729,1215],{"class":977},[967,1731,1688],{"class":1029},[967,1733,1301],{"class":977},[967,1735,1737],{"class":969,"line":1736},45,[967,1738,1238],{"class":977},[967,1740,1742,1744,1746,1748,1751,1753,1755,1757,1759,1762,1764],{"class":969,"line":1741},46,[967,1743,1179],{"class":1007},[967,1745,1065],{"class":1003},[967,1747,1069],{"class":1068},[967,1749,1750],{"class":1007},"+=",[967,1752,1075],{"class":977},[967,1754,1114],{"class":1003},[967,1756,1008],{"class":1007},[967,1758,1065],{"class":1003},[967,1760,1761],{"class":1254}," b",[967,1763,1258],{"class":977},[967,1765,1011],{"class":977},[967,1767,1769,1772,1774,1777,1780,1782],{"class":969,"line":1768},47,[967,1770,1771],{"class":977},"        *this",[967,1773,1358],{"class":977},[967,1775,1776],{"class":977}," *this",[967,1778,1779],{"class":977}," +",[967,1781,1761],{"class":1029},[967,1783,1033],{"class":977},[967,1785,1787,1789,1792],{"class":969,"line":1786},48,[967,1788,1681],{"class":973},[967,1790,1791],{"class":977}," *this;",[967,1793,1794],{"class":1029}," \n",[967,1796,1798],{"class":969,"line":1797},49,[967,1799,1238],{"class":977},[967,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1822,1824],{"class":969,"line":1802},50,[967,1804,1179],{"class":1007},[967,1806,1065],{"class":1003},[967,1808,1069],{"class":1068},[967,1810,1193],{"class":1007},[967,1812,1075],{"class":977},[967,1814,1114],{"class":1003},[967,1816,1008],{"class":1007},[967,1818,1065],{"class":1003},[967,1820,1821],{"class":1254}," assignVal",[967,1823,1258],{"class":977},[967,1825,1011],{"class":977},[967,1827,1829,1832,1834,1837,1840,1842,1844,1846,1848,1851],{"class":969,"line":1828},51,[967,1830,1831],{"class":973},"        if",[967,1833,1310],{"class":977},[967,1835,1836],{"class":1029},"str ",[967,1838,1839],{"class":977},"==",[967,1841,1821],{"class":1227},[967,1843,1272],{"class":977},[967,1845,1365],{"class":1227},[967,1847,1258],{"class":977},[967,1849,1850],{"class":973}," return",[967,1852,1853],{"class":977}," *this;\n",[967,1855,1857,1859,1861],{"class":969,"line":1856},52,[967,1858,1638],{"class":977},[967,1860,1045],{"class":1029},[967,1862,1033],{"class":977},[967,1864,1866,1868,1870,1872,1874,1876],{"class":969,"line":1865},53,[967,1867,1190],{"class":1029},[967,1869,1193],{"class":977},[967,1871,1821],{"class":1227},[967,1873,1272],{"class":977},[967,1875,1275],{"class":1227},[967,1877,1033],{"class":977},[967,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897],{"class":969,"line":1880},54,[967,1882,1204],{"class":1029},[967,1884,1193],{"class":977},[967,1886,1209],{"class":977},[967,1888,1212],{"class":1003},[967,1890,1215],{"class":977},[967,1892,1293],{"class":1029},[967,1894,1109],{"class":977},[967,1896,1298],{"class":1068},[967,1898,1301],{"class":977},[967,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1929],{"class":969,"line":1901},55,[967,1903,1307],{"class":973},[967,1905,1310],{"class":977},[967,1907,1313],{"class":1003},[967,1909,1316],{"class":1029},[967,1911,1319],{"class":1068},[967,1913,1322],{"class":1029},[967,1915,1325],{"class":977},[967,1917,1328],{"class":1029},[967,1919,1331],{"class":977},[967,1921,1030],{"class":1029},[967,1923,1325],{"class":977},[967,1925,1338],{"class":1029},[967,1927,1928],{"class":977},"++)",[967,1930,1011],{"class":977},[967,1932,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954],{"class":969,"line":1933},56,[967,1935,1347],{"class":1227},[967,1937,1215],{"class":977},[967,1939,1352],{"class":1029},[967,1941,1355],{"class":977},[967,1943,1358],{"class":977},[967,1945,1821],{"class":1227},[967,1947,1272],{"class":977},[967,1949,1365],{"class":1227},[967,1951,1215],{"class":977},[967,1953,1352],{"class":1029},[967,1955,1301],{"class":977},[967,1957,1959],{"class":969,"line":1958},57,[967,1960,1961],{"class":977},"        }\n",[967,1963,1965,1967],{"class":969,"line":1964},58,[967,1966,1681],{"class":973},[967,1968,1853],{"class":977},[967,1970,1972],{"class":969,"line":1971},59,[967,1973,1238],{"class":977},[967,1975,1977,1980,1982,1984,1986,1988,1990,1992,1995,1997,1999],{"class":969,"line":1976},60,[967,1978,1979],{"class":1003},"    bool",[967,1981,1069],{"class":1068},[967,1983,1839],{"class":1007},[967,1985,1075],{"class":977},[967,1987,1114],{"class":1003},[967,1989,1008],{"class":1007},[967,1991,1065],{"class":1003},[967,1993,1994],{"class":1254}," rhs",[967,1996,1258],{"class":977},[967,1998,1090],{"class":1003},[967,2000,1011],{"class":977},[967,2002,2004,2006,2008,2010,2013,2015,2017,2019,2021,2023],{"class":969,"line":2003},61,[967,2005,1831],{"class":973},[967,2007,1310],{"class":977},[967,2009,1293],{"class":1029},[967,2011,2012],{"class":977},"!=",[967,2014,1994],{"class":1227},[967,2016,1272],{"class":977},[967,2018,1275],{"class":1227},[967,2020,1258],{"class":977},[967,2022,1850],{"class":973},[967,2024,2025],{"class":977}," false;\n",[967,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2048,2050,2052,2054,2056],{"class":969,"line":2028},62,[967,2030,1307],{"class":973},[967,2032,1310],{"class":977},[967,2034,1313],{"class":1003},[967,2036,1316],{"class":1029},[967,2038,1319],{"class":1068},[967,2040,1322],{"class":1029},[967,2042,1325],{"class":977},[967,2044,1328],{"class":1029},[967,2046,2047],{"class":977},"\u003C",[967,2049,1030],{"class":1029},[967,2051,1325],{"class":977},[967,2053,1338],{"class":1029},[967,2055,1928],{"class":977},[967,2057,1011],{"class":977},[967,2059,2061,2064,2066,2068,2070,2072,2074,2077,2079,2081,2083,2085,2087],{"class":969,"line":2060},63,[967,2062,2063],{"class":973},"            if",[967,2065,1310],{"class":977},[967,2067,1365],{"class":1227},[967,2069,1215],{"class":977},[967,2071,1352],{"class":1029},[967,2073,1355],{"class":977},[967,2075,2076],{"class":977}," !=",[967,2078,1994],{"class":1227},[967,2080,1272],{"class":977},[967,2082,1365],{"class":1227},[967,2084,1215],{"class":977},[967,2086,1352],{"class":1029},[967,2088,2089],{"class":977},"])\n",[967,2091,2093,2096],{"class":969,"line":2092},64,[967,2094,2095],{"class":973},"                return",[967,2097,2025],{"class":977},[967,2099,2101],{"class":969,"line":2100},65,[967,2102,1961],{"class":977},[967,2104,2106,2108],{"class":969,"line":2105},66,[967,2107,1681],{"class":973},[967,2109,2110],{"class":977}," true;\n",[967,2112,2114],{"class":969,"line":2113},67,[967,2115,1238],{"class":977},[967,2117,2119,2122,2124,2127,2129,2131],{"class":969,"line":2118},68,[967,2120,2121],{"class":1003},"    explicit",[967,2123,1069],{"class":1068},[967,2125,2126],{"class":1007}," bool",[967,2128,1182],{"class":977},[967,2130,1090],{"class":1003},[967,2132,1011],{"class":977},[967,2134,2136,2138,2140,2142,2144,2146,2148,2150],{"class":969,"line":2135},69,[967,2137,1831],{"class":973},[967,2139,1310],{"class":977},[967,2141,1293],{"class":1029},[967,2143,1839],{"class":977},[967,2145,1196],{"class":1068},[967,2147,1258],{"class":977},[967,2149,1850],{"class":973},[967,2151,2025],{"class":977},[967,2153,2155,2158,2160],{"class":969,"line":2154},70,[967,2156,2157],{"class":973},"        else",[967,2159,1850],{"class":973},[967,2161,2110],{"class":977},[967,2163,2165],{"class":969,"line":2164},71,[967,2166,1238],{"class":977},[967,2168,2170],{"class":969,"line":2169},72,[967,2171,1135],{"emptyLinePlaceholder":1134},[967,2173,2175,2177,2180,2182],{"class":969,"line":2174},73,[967,2176,1026],{"class":1003},[967,2178,2179],{"class":1178}," length",[967,2181,1182],{"class":977},[967,2183,1011],{"class":977},[967,2185,2187,2189,2191],{"class":969,"line":2186},74,[967,2188,1681],{"class":973},[967,2190,1030],{"class":1029},[967,2192,1033],{"class":977},[967,2194,2196],{"class":969,"line":2195},75,[967,2197,1238],{"class":977},[967,2199,2201],{"class":969,"line":2200},76,[967,2202,1135],{"emptyLinePlaceholder":1134},[967,2204,2206,2208,2211,2213,2216,2218,2220],{"class":969,"line":2205},77,[967,2207,1026],{"class":1003},[967,2209,2210],{"class":1178}," find",[967,2212,1075],{"class":977},[967,2214,2215],{"class":1003},"char",[967,2217,1510],{"class":1254},[967,2219,1258],{"class":977},[967,2221,1011],{"class":977},[967,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251],{"class":969,"line":2224},78,[967,2226,1307],{"class":973},[967,2228,1310],{"class":977},[967,2230,1313],{"class":1003},[967,2232,1316],{"class":1029},[967,2234,1319],{"class":1068},[967,2236,1322],{"class":1029},[967,2238,1325],{"class":977},[967,2240,1328],{"class":1029},[967,2242,1331],{"class":977},[967,2244,1030],{"class":1029},[967,2246,1325],{"class":977},[967,2248,1338],{"class":1029},[967,2250,1928],{"class":977},[967,2252,1011],{"class":977},[967,2254,2256,2258,2260,2263,2265,2267,2269,2271,2274,2276,2278],{"class":969,"line":2255},79,[967,2257,2063],{"class":973},[967,2259,1310],{"class":977},[967,2261,2262],{"class":1029},"c ",[967,2264,1839],{"class":977},[967,2266,1045],{"class":1227},[967,2268,1215],{"class":977},[967,2270,1352],{"class":1029},[967,2272,2273],{"class":977},"])",[967,2275,1850],{"class":973},[967,2277,1338],{"class":1029},[967,2279,1033],{"class":977},[967,2281,2283],{"class":969,"line":2282},80,[967,2284,1961],{"class":977},[967,2286,2288,2290,2292],{"class":969,"line":2287},81,[967,2289,1681],{"class":973},[967,2291,1158],{"class":1029},[967,2293,1033],{"class":977},[967,2295,2297],{"class":969,"line":2296},82,[967,2298,1238],{"class":977},[967,2300,2302],{"class":969,"line":2301},83,[967,2303,1167],{"class":977},[967,2305,2307,2309,2311,2313,2315,2317,2319,2321,2324,2326,2328,2330,2332,2334,2336],{"class":969,"line":2306},84,[967,2308,955],{"class":1007},[967,2310,1069],{"class":1068},[967,2312,1109],{"class":1007},[967,2314,1075],{"class":977},[967,2316,1114],{"class":1003},[967,2318,1008],{"class":1007},[967,2320,1065],{"class":1003},[967,2322,2323],{"class":1254}," a",[967,2325,1087],{"class":977},[967,2327,1090],{"class":1003},[967,2329,1008],{"class":1007},[967,2331,1065],{"class":1003},[967,2333,1761],{"class":1254},[967,2335,1258],{"class":977},[967,2337,1011],{"class":977},[967,2339,2341,2343,2345,2348,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373],{"class":969,"line":2340},85,[967,2342,1039],{"class":1003},[967,2344,1042],{"class":977},[967,2346,2347],{"class":1227}," newstr",[967,2349,2350],{"class":977},"{new",[967,2352,1212],{"class":1003},[967,2354,1215],{"class":977},[967,2356,938],{"class":1227},[967,2358,1272],{"class":977},[967,2360,1275],{"class":1227},[967,2362,1779],{"class":977},[967,2364,1761],{"class":1227},[967,2366,1272],{"class":977},[967,2368,1275],{"class":1227},[967,2370,1779],{"class":977},[967,2372,1298],{"class":1068},[967,2374,2375],{"class":977},"]};\n",[967,2377,2379,2382,2384,2387,2389,2392,2394,2396,2398,2400],{"class":969,"line":2378},86,[967,2380,2381],{"class":1007},"    std",[967,2383,1059],{"class":977},[967,2385,2386],{"class":1178},"strcpy",[967,2388,1075],{"class":977},[967,2390,2391],{"class":1227},"newstr",[967,2393,1087],{"class":977},[967,2395,2323],{"class":1227},[967,2397,1272],{"class":977},[967,2399,1365],{"class":1227},[967,2401,1097],{"class":977},[967,2403,2405,2407,2409,2411,2413,2416,2418,2420,2422,2424,2426,2428,2430,2432],{"class":969,"line":2404},87,[967,2406,2381],{"class":1007},[967,2408,1059],{"class":977},[967,2410,2386],{"class":1178},[967,2412,1075],{"class":977},[967,2414,2415],{"class":1227},"newstr ",[967,2417,1109],{"class":977},[967,2419,2323],{"class":1227},[967,2421,1272],{"class":977},[967,2423,1275],{"class":1227},[967,2425,1087],{"class":977},[967,2427,1761],{"class":1227},[967,2429,1272],{"class":977},[967,2431,1365],{"class":1227},[967,2433,1097],{"class":977},[967,2435,2437,2440,2443,2445,2447],{"class":969,"line":2436},88,[967,2438,2439],{"class":1227},"    String ",[967,2441,2442],{"class":1178},"result",[967,2444,1075],{"class":977},[967,2446,2391],{"class":1227},[967,2448,1097],{"class":977},[967,2450,2452,2455,2457],{"class":969,"line":2451},89,[967,2453,2454],{"class":977},"    delete[]",[967,2456,2347],{"class":1227},[967,2458,1033],{"class":977},[967,2460,2462,2465,2468],{"class":969,"line":2461},90,[967,2463,2464],{"class":973},"    return",[967,2466,2467],{"class":1227}," result",[967,2469,1033],{"class":977},[967,2471,2473],{"class":969,"line":2472},91,[967,2474,2475],{"class":977},"}\n",[967,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2504,2506,2508,2510,2512,2514,2516],{"class":969,"line":2478},92,[967,2480,1078],{"class":1007},[967,2482,1059],{"class":977},[967,2484,1062],{"class":1007},[967,2486,1065],{"class":1003},[967,2488,1069],{"class":1068},[967,2490,1072],{"class":1007},[967,2492,1075],{"class":977},[967,2494,1078],{"class":1007},[967,2496,1059],{"class":977},[967,2498,1062],{"class":1007},[967,2500,1065],{"class":1003},[967,2502,2503],{"class":1254}," os",[967,2505,1087],{"class":977},[967,2507,1090],{"class":1003},[967,2509,1008],{"class":1007},[967,2511,1065],{"class":1003},[967,2513,1761],{"class":1254},[967,2515,1258],{"class":977},[967,2517,1011],{"class":977},[967,2519,2521,2524,2526,2528,2530,2532],{"class":969,"line":2520},93,[967,2522,2523],{"class":1227},"    os ",[967,2525,1072],{"class":977},[967,2527,1761],{"class":1227},[967,2529,1272],{"class":977},[967,2531,1365],{"class":1227},[967,2533,1033],{"class":977},[967,2535,2537,2539,2541],{"class":969,"line":2536},94,[967,2538,2464],{"class":973},[967,2540,2503],{"class":1227},[967,2542,1033],{"class":977},[967,2544,2546],{"class":969,"line":2545},95,[967,2547,2475],{"class":977},[967,2549,2551],{"class":969,"line":2550},96,[967,2552,1135],{"emptyLinePlaceholder":1134},[967,2554,2556,2559,2562,2564],{"class":969,"line":2555},97,[967,2557,2558],{"class":1003},"int",[967,2560,2561],{"class":1178}," main",[967,2563,1182],{"class":977},[967,2565,1011],{"class":977},[967,2567,2569,2571,2573,2575,2578,2581,2583,2586,2588,2590,2592,2595,2597,2599,2601],{"class":969,"line":2568},98,[967,2570,2439],{"class":1227},[967,2572,938],{"class":1178},[967,2574,1075],{"class":977},[967,2576,2577],{"class":977},"\"",[967,2579,2580],{"class":981},"abc",[967,2582,2577],{"class":977},[967,2584,2585],{"class":977},"),",[967,2587,1761],{"class":1178},[967,2589,1075],{"class":977},[967,2591,2577],{"class":977},[967,2593,2594],{"class":981},"def",[967,2596,2577],{"class":977},[967,2598,2585],{"class":977},[967,2600,1510],{"class":1227},[967,2602,1033],{"class":977},[967,2604,2606,2609,2611,2614,2616,2618],{"class":969,"line":2605},99,[967,2607,2608],{"class":1227},"    c ",[967,2610,1193],{"class":977},[967,2612,2613],{"class":1227}," a ",[967,2615,1109],{"class":977},[967,2617,1761],{"class":1227},[967,2619,1033],{"class":977},[967,2621,2623,2625,2627,2630,2632,2635,2637,2639,2641,2644],{"class":969,"line":2622},100,[967,2624,2381],{"class":1007},[967,2626,1059],{"class":977},[967,2628,2629],{"class":1227},"cout ",[967,2631,1072],{"class":977},[967,2633,2634],{"class":1227}," c ",[967,2636,1072],{"class":977},[967,2638,1056],{"class":1007},[967,2640,1059],{"class":977},[967,2642,2643],{"class":1227},"endl",[967,2645,1033],{"class":977},[967,2647,2649],{"class":969,"line":2648},101,[967,2650,2475],{"class":977},[918,2652,2653,2654,2657,2658,2661,2662,2665,2666,2668,2669,2671,2672,2675,2676,2679,2680,2683,2684,2687],{},"这里的代码使用了 ",[953,2655,2656],{},"c = a + b"," 表达式。它本质上的执行过程是：先计算 ",[953,2659,2660],{},"a + b","，也就是调用 ",[953,2663,2664],{},"String::operator+"," 函数：它返回的是 ",[953,2667,955],{}," 值类型，因此 ",[953,2670,2660],{}," 是一个纯右值。然后它由于被用在了 ",[953,2673,2674],{},"operator="," 右侧，下一步会绑定到 ",[953,2677,2678],{},"const String&"," 上，因此执行临时量实质化，实质化得到的实体就是 ",[953,2681,2682],{},"operator=(const String& assignVal)"," 里的参数 ",[953,2685,2686],{},"assignVal","。",[918,2689,2690,2691,2693,2694,2696,2697,2700,2701,2703],{},"然后，",[953,2692,2674],{}," 照常执行，将 ",[953,2695,2660],{}," 的资源（这里就是 new 出来的内存内容）复制到 ",[953,2698,2699],{},"c"," 里去。最后，",[953,2702,2660],{}," 会在整条语句执行完毕后释放（这个释放的时机将在稍后说明），刚刚被复制的内容立刻被释放。",[918,2705,2706,2707,2709,2710,2712,2713,2715,2716,2718,2719,2721,2722,2724,2725,2727,2728,2730],{},"仔细观察会发现，",[953,2708,2660],{}," 的资源被复制出去一次后就立刻释放了。结合这一部分的大标题“移动语义”，你就应该能知道我们更期望的是将这里的资源“移动”出去。具体来说，就是让 ",[953,2711,2699],{}," 内的 ",[953,2714,1365],{}," 指针指向这个临时的 ",[953,2717,2660],{}," 实体内的 ",[953,2720,1365],{},"。尽管这样会造成两个 ",[953,2723,955],{}," 对象共享资源；但没有关系，",[953,2726,2660],{}," 很快就会被释放掉，整条语句执行完毕后这个资源只有 ",[953,2729,2699],{}," 持有。如果我们实现了这样一个赋值的语义，那就不会有额外的复制操作了。",[943,2732,2733],{"id":2733},"右值引用的语法",[918,2735,2736,2737,2739],{},"右值引用可以用来实现移动语义。它利用的是这样一个前提：右值总是“短命”的，或者说右值用完这一次就应该释放了。因此，可以将它所持有的资源移动到别的地方去，比如 ",[953,2738,2674],{}," 的左侧操作数。右值引用具有这样的语法：",[2741,2742,2743],"sdsc",{},[918,2744,2745,2746],{},"类型\"&&\" 引用名",[967,2747,2748],{},"初始化器",[918,2750,2751,2752,2754,2755,2687],{},"比左值引用多了一个 ",[953,2753,1065],{},"。它的特点是：右值引用只能从右值初始化（或者说绑定到右值上）。此外，左值引用和右值引用就没有其它区别了；惟一的区别就是非只读的",[2756,2757,2758],"strong",{},"左值引用只能从左值初始化，右值引用只能从右值初始化",[918,2760,2761,2762,2687],{},"如果一个引用能够从右值初始化，那么这个引用就相当于它刚刚绑定到的右值（其实已经实质化为亡值），对这个引用进行任何操作就相当于对被绑定的右值进行操作。因此我加入了这样的代码—— ",[953,2763,2764],{},"String& operator=(String&&);",[958,2766,2768],{"className":960,"code":2767,"language":962,"meta":963,"style":963},"#include \u003Ccstring>\n#include \u003Ciostream>\nclass String {\nprivate:\n    unsigned len;\n    char* str;\n    friend std::ostream& operator\u003C\u003C(std::ostream&, const String&);\n    friend String operator+(const String&, const String&);\n\npublic:\n    static constexpr unsigned npos{4294967295};\n\n    String() {\n        len = 0;\n        str = new char[1]{'\\0'};\n    }\n    String(const String& initVal) {\n        len = initVal.len;\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++)\n            str[i] = initVal.str[i];\n    }\n    String(const char* initVal) {\n        len = std::strlen(initVal);\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++)\n            str[i] = initVal[i];\n    }\n    String(unsigned num, char c) {\n        len = num;\n        str = new char[num + 1];\n        for (unsigned i{0}; i \u003C= num; i++)\n            str[i] = c;\n        str[num] = '\\0';\n    }\n    ~String() {\n        delete[] str;\n    }\n\n    char& operator[](\u002Funsigned pos) {\n        return str[pos];\n    }\n    const char& operator[](\u002Funsigned pos) const {\n        return str[pos];\n    }\n    String& operator+=(const String& b) {\n        *this = *this + b;\n        return *this; \n    }\n    String& operator=(const String& assignVal) {\n        if (str == assignVal.str) return *this;\n        delete[] str;\n        len = assignVal.len;\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++) {\n            str[i] = assignVal.str[i];\n        }\n        return *this;\n    }\n    String& operator=(String&& assignVal) {\n        \u002F\u002F 交换两个 String 指向的内容...\n        auto tempStr{str};\n        str = assignVal.str;\n        assignVal.str = tempStr;\n        \u002F\u002F ...以及它们的长度\n        auto tempLen{len};\n        len = assignVal.len;\n        assignVal.len = tempLen;\n        return *this;\n    }\n\n    bool operator==(const String& rhs) const {\n        if (len != rhs.len) return false;\n        for (unsigned i{0}; i \u003C len; i++) {\n            if (str[i] != rhs.str[i])\n                return false;\n        }\n        return true;\n    }\n    explicit operator bool() const {\n        if (len == 0) return false;\n        else return true;\n    }\n\n    unsigned length() {\n        return len;\n    }\n\n    unsigned find(char c) {\n        for (unsigned i{0}; i \u003C= len; i++) {\n            if (c == str[i]) return i;\n        }\n        return npos;\n    }\n};\nString operator+(const String& a, const String& b) {\n    char* newstr{new char[a.len + b.len + 1]};\n    std::strcpy(newstr, a.str);\n    std::strcpy(newstr + a.len, b.str);\n    String result(newstr);\n    delete[] newstr;\n    return result;\n}\nstd::ostream& operator\u003C\u003C(std::ostream& os, const String& b) {\n    os \u003C\u003C b.str;\n    return os;\n}\n\nint main() {\n    String a(\"abc\"), b(\"def\"), c;\n    c = a + b;\n    std::cout \u003C\u003C c \u003C\u003C std::endl;\n}\n",[953,2769,2770,2780,2790,2798,2804,2812,2822,2858,2886,2890,2896,2912,2916,2924,2934,2958,2962,2980,2994,3014,3042,3066,3070,3086,3104,3124,3152,3172,3176,3196,3206,3226,3254,3270,3290,3294,3302,3310,3314,3318,3336,3348,3352,3374,3386,3390,3414,3428,3436,3440,3464,3486,3494,3508,3528,3558,3582,3586,3592,3596,3619,3625,3639,3653,3668,3673,3686,3700,3714,3720,3724,3728,3752,3774,3804,3832,3838,3842,3848,3852,3866,3884,3892,3896,3900,3910,3918,3922,3926,3942,3972,3996,4000,4008,4012,4016,4048,4082,4104,4134,4146,4154,4163,4168,4209,4224,4233,4238,4243,4254,4287,4302,4325],{"__ignoreMap":963},[967,2771,2772,2774,2776,2778],{"class":969,"line":970},[967,2773,974],{"class":973},[967,2775,978],{"class":977},[967,2777,982],{"class":981},[967,2779,985],{"class":977},[967,2781,2782,2784,2786,2788],{"class":969,"line":988},[967,2783,974],{"class":973},[967,2785,978],{"class":977},[967,2787,995],{"class":981},[967,2789,985],{"class":977},[967,2791,2792,2794,2796],{"class":969,"line":1000},[967,2793,1004],{"class":1003},[967,2795,1008],{"class":1007},[967,2797,1011],{"class":977},[967,2799,2800,2802],{"class":969,"line":1014},[967,2801,1017],{"class":1003},[967,2803,1020],{"class":977},[967,2805,2806,2808,2810],{"class":969,"line":1023},[967,2807,1026],{"class":1003},[967,2809,1030],{"class":1029},[967,2811,1033],{"class":977},[967,2813,2814,2816,2818,2820],{"class":969,"line":1036},[967,2815,1039],{"class":1003},[967,2817,1042],{"class":977},[967,2819,1045],{"class":1029},[967,2821,1033],{"class":977},[967,2823,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856],{"class":969,"line":1050},[967,2825,1053],{"class":1003},[967,2827,1056],{"class":1007},[967,2829,1059],{"class":977},[967,2831,1062],{"class":1007},[967,2833,1065],{"class":1003},[967,2835,1069],{"class":1068},[967,2837,1072],{"class":1007},[967,2839,1075],{"class":977},[967,2841,1078],{"class":1007},[967,2843,1059],{"class":977},[967,2845,1062],{"class":1007},[967,2847,1065],{"class":1003},[967,2849,1087],{"class":977},[967,2851,1090],{"class":1003},[967,2853,1008],{"class":1007},[967,2855,1065],{"class":1003},[967,2857,1097],{"class":977},[967,2859,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884],{"class":969,"line":1100},[967,2861,1053],{"class":1003},[967,2863,1008],{"class":1007},[967,2865,1069],{"class":1068},[967,2867,1109],{"class":1007},[967,2869,1075],{"class":977},[967,2871,1114],{"class":1003},[967,2873,1008],{"class":1007},[967,2875,1065],{"class":1003},[967,2877,1087],{"class":977},[967,2879,1090],{"class":1003},[967,2881,1008],{"class":1007},[967,2883,1065],{"class":1003},[967,2885,1097],{"class":977},[967,2887,2888],{"class":969,"line":1131},[967,2889,1135],{"emptyLinePlaceholder":1134},[967,2891,2892,2894],{"class":969,"line":1138},[967,2893,1141],{"class":1003},[967,2895,1020],{"class":977},[967,2897,2898,2900,2902,2904,2906,2908,2910],{"class":969,"line":1146},[967,2899,1149],{"class":1003},[967,2901,1152],{"class":1003},[967,2903,1155],{"class":1003},[967,2905,1158],{"class":1029},[967,2907,1161],{"class":977},[967,2909,1164],{"class":1068},[967,2911,1167],{"class":977},[967,2913,2914],{"class":969,"line":1170},[967,2915,1135],{"emptyLinePlaceholder":1134},[967,2917,2918,2920,2922],{"class":969,"line":1175},[967,2919,1179],{"class":1178},[967,2921,1182],{"class":977},[967,2923,1011],{"class":977},[967,2925,2926,2928,2930,2932],{"class":969,"line":1187},[967,2927,1190],{"class":1029},[967,2929,1193],{"class":977},[967,2931,1196],{"class":1068},[967,2933,1033],{"class":977},[967,2935,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956],{"class":969,"line":1201},[967,2937,1204],{"class":1029},[967,2939,1193],{"class":977},[967,2941,1209],{"class":977},[967,2943,1212],{"class":1003},[967,2945,1215],{"class":977},[967,2947,1218],{"class":1068},[967,2949,1221],{"class":977},[967,2951,1224],{"class":977},[967,2953,1228],{"class":1227},[967,2955,1224],{"class":977},[967,2957,1167],{"class":977},[967,2959,2960],{"class":969,"line":1235},[967,2961,1238],{"class":977},[967,2963,2964,2966,2968,2970,2972,2974,2976,2978],{"class":969,"line":1241},[967,2965,1179],{"class":1178},[967,2967,1075],{"class":977},[967,2969,1114],{"class":1003},[967,2971,1008],{"class":1007},[967,2973,1065],{"class":1003},[967,2975,1255],{"class":1254},[967,2977,1258],{"class":977},[967,2979,1011],{"class":977},[967,2981,2982,2984,2986,2988,2990,2992],{"class":969,"line":1263},[967,2983,1190],{"class":1029},[967,2985,1193],{"class":977},[967,2987,1255],{"class":1227},[967,2989,1272],{"class":977},[967,2991,1275],{"class":1227},[967,2993,1033],{"class":977},[967,2995,2996,2998,3000,3002,3004,3006,3008,3010,3012],{"class":969,"line":1280},[967,2997,1204],{"class":1029},[967,2999,1193],{"class":977},[967,3001,1209],{"class":977},[967,3003,1212],{"class":1003},[967,3005,1215],{"class":977},[967,3007,1293],{"class":1029},[967,3009,1109],{"class":977},[967,3011,1298],{"class":1068},[967,3013,1301],{"class":977},[967,3015,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038,3040],{"class":969,"line":1304},[967,3017,1307],{"class":973},[967,3019,1310],{"class":977},[967,3021,1313],{"class":1003},[967,3023,1316],{"class":1029},[967,3025,1319],{"class":1068},[967,3027,1322],{"class":1029},[967,3029,1325],{"class":977},[967,3031,1328],{"class":1029},[967,3033,1331],{"class":977},[967,3035,1030],{"class":1029},[967,3037,1325],{"class":977},[967,3039,1338],{"class":1029},[967,3041,1341],{"class":977},[967,3043,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064],{"class":969,"line":1344},[967,3045,1347],{"class":1227},[967,3047,1215],{"class":977},[967,3049,1352],{"class":1029},[967,3051,1355],{"class":977},[967,3053,1358],{"class":977},[967,3055,1255],{"class":1227},[967,3057,1272],{"class":977},[967,3059,1365],{"class":1227},[967,3061,1215],{"class":977},[967,3063,1352],{"class":1029},[967,3065,1301],{"class":977},[967,3067,3068],{"class":969,"line":1374},[967,3069,1238],{"class":977},[967,3071,3072,3074,3076,3078,3080,3082,3084],{"class":969,"line":1379},[967,3073,1179],{"class":1178},[967,3075,1075],{"class":977},[967,3077,1114],{"class":1003},[967,3079,1388],{"class":1003},[967,3081,1255],{"class":1254},[967,3083,1258],{"class":977},[967,3085,1011],{"class":977},[967,3087,3088,3090,3092,3094,3096,3098,3100,3102],{"class":969,"line":1397},[967,3089,1190],{"class":1029},[967,3091,1193],{"class":977},[967,3093,1056],{"class":1007},[967,3095,1059],{"class":977},[967,3097,1408],{"class":1178},[967,3099,1075],{"class":977},[967,3101,1413],{"class":1029},[967,3103,1097],{"class":977},[967,3105,3106,3108,3110,3112,3114,3116,3118,3120,3122],{"class":969,"line":1418},[967,3107,1204],{"class":1029},[967,3109,1193],{"class":977},[967,3111,1209],{"class":977},[967,3113,1212],{"class":1003},[967,3115,1215],{"class":977},[967,3117,1293],{"class":1029},[967,3119,1109],{"class":977},[967,3121,1298],{"class":1068},[967,3123,1301],{"class":977},[967,3125,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150],{"class":969,"line":1439},[967,3127,1307],{"class":973},[967,3129,1310],{"class":977},[967,3131,1313],{"class":1003},[967,3133,1316],{"class":1029},[967,3135,1319],{"class":1068},[967,3137,1322],{"class":1029},[967,3139,1325],{"class":977},[967,3141,1328],{"class":1029},[967,3143,1331],{"class":977},[967,3145,1030],{"class":1029},[967,3147,1325],{"class":977},[967,3149,1338],{"class":1029},[967,3151,1341],{"class":977},[967,3153,3154,3156,3158,3160,3162,3164,3166,3168,3170],{"class":969,"line":1468},[967,3155,1347],{"class":1227},[967,3157,1215],{"class":977},[967,3159,1352],{"class":1029},[967,3161,1355],{"class":977},[967,3163,1358],{"class":977},[967,3165,1255],{"class":1227},[967,3167,1215],{"class":977},[967,3169,1352],{"class":1029},[967,3171,1301],{"class":977},[967,3173,3174],{"class":969,"line":1489},[967,3175,1238],{"class":977},[967,3177,3178,3180,3182,3184,3186,3188,3190,3192,3194],{"class":969,"line":1494},[967,3179,1179],{"class":1178},[967,3181,1075],{"class":977},[967,3183,1313],{"class":1003},[967,3185,1503],{"class":1254},[967,3187,1087],{"class":977},[967,3189,1212],{"class":1003},[967,3191,1510],{"class":1254},[967,3193,1258],{"class":977},[967,3195,1011],{"class":977},[967,3197,3198,3200,3202,3204],{"class":969,"line":1517},[967,3199,1190],{"class":1029},[967,3201,1193],{"class":977},[967,3203,1503],{"class":1029},[967,3205,1033],{"class":977},[967,3207,3208,3210,3212,3214,3216,3218,3220,3222,3224],{"class":969,"line":1528},[967,3209,1204],{"class":1029},[967,3211,1193],{"class":977},[967,3213,1209],{"class":977},[967,3215,1212],{"class":1003},[967,3217,1215],{"class":977},[967,3219,1541],{"class":1029},[967,3221,1109],{"class":977},[967,3223,1298],{"class":1068},[967,3225,1301],{"class":977},[967,3227,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252],{"class":969,"line":1550},[967,3229,1307],{"class":973},[967,3231,1310],{"class":977},[967,3233,1313],{"class":1003},[967,3235,1316],{"class":1029},[967,3237,1319],{"class":1068},[967,3239,1322],{"class":1029},[967,3241,1325],{"class":977},[967,3243,1328],{"class":1029},[967,3245,1331],{"class":977},[967,3247,1503],{"class":1029},[967,3249,1325],{"class":977},[967,3251,1338],{"class":1029},[967,3253,1341],{"class":977},[967,3255,3256,3258,3260,3262,3264,3266,3268],{"class":969,"line":1579},[967,3257,1347],{"class":1227},[967,3259,1215],{"class":977},[967,3261,1352],{"class":1029},[967,3263,1355],{"class":977},[967,3265,1358],{"class":977},[967,3267,1510],{"class":1029},[967,3269,1033],{"class":977},[967,3271,3272,3274,3276,3278,3280,3282,3284,3286,3288],{"class":969,"line":1596},[967,3273,1599],{"class":1227},[967,3275,1215],{"class":977},[967,3277,1604],{"class":1029},[967,3279,1355],{"class":977},[967,3281,1358],{"class":977},[967,3283,1611],{"class":977},[967,3285,1228],{"class":1227},[967,3287,1224],{"class":977},[967,3289,1033],{"class":977},[967,3291,3292],{"class":969,"line":1620},[967,3293,1238],{"class":977},[967,3295,3296,3298,3300],{"class":969,"line":1625},[967,3297,1628],{"class":1178},[967,3299,1182],{"class":977},[967,3301,1011],{"class":977},[967,3303,3304,3306,3308],{"class":969,"line":1635},[967,3305,1638],{"class":977},[967,3307,1045],{"class":1029},[967,3309,1033],{"class":977},[967,3311,3312],{"class":969,"line":1645},[967,3313,1238],{"class":977},[967,3315,3316],{"class":969,"line":1650},[967,3317,1135],{"emptyLinePlaceholder":1134},[967,3319,3320,3322,3324,3326,3328,3330,3332,3334],{"class":969,"line":1655},[967,3321,1658],{"class":1003},[967,3323,1069],{"class":1068},[967,3325,1663],{"class":1007},[967,3327,1666],{"class":977},[967,3329,1313],{"class":1003},[967,3331,1671],{"class":1254},[967,3333,1258],{"class":977},[967,3335,1011],{"class":977},[967,3337,3338,3340,3342,3344,3346],{"class":969,"line":1678},[967,3339,1681],{"class":973},[967,3341,1045],{"class":1227},[967,3343,1215],{"class":977},[967,3345,1688],{"class":1029},[967,3347,1301],{"class":977},[967,3349,3350],{"class":969,"line":1693},[967,3351,1238],{"class":977},[967,3353,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372],{"class":969,"line":1698},[967,3355,1701],{"class":1003},[967,3357,1704],{"class":1003},[967,3359,1069],{"class":1068},[967,3361,1663],{"class":1007},[967,3363,1666],{"class":977},[967,3365,1313],{"class":1003},[967,3367,1671],{"class":1254},[967,3369,1258],{"class":977},[967,3371,1090],{"class":1003},[967,3373,1011],{"class":977},[967,3375,3376,3378,3380,3382,3384],{"class":969,"line":1723},[967,3377,1681],{"class":973},[967,3379,1045],{"class":1227},[967,3381,1215],{"class":977},[967,3383,1688],{"class":1029},[967,3385,1301],{"class":977},[967,3387,3388],{"class":969,"line":1736},[967,3389,1238],{"class":977},[967,3391,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412],{"class":969,"line":1741},[967,3393,1179],{"class":1007},[967,3395,1065],{"class":1003},[967,3397,1069],{"class":1068},[967,3399,1750],{"class":1007},[967,3401,1075],{"class":977},[967,3403,1114],{"class":1003},[967,3405,1008],{"class":1007},[967,3407,1065],{"class":1003},[967,3409,1761],{"class":1254},[967,3411,1258],{"class":977},[967,3413,1011],{"class":977},[967,3415,3416,3418,3420,3422,3424,3426],{"class":969,"line":1768},[967,3417,1771],{"class":977},[967,3419,1358],{"class":977},[967,3421,1776],{"class":977},[967,3423,1779],{"class":977},[967,3425,1761],{"class":1029},[967,3427,1033],{"class":977},[967,3429,3430,3432,3434],{"class":969,"line":1786},[967,3431,1681],{"class":973},[967,3433,1791],{"class":977},[967,3435,1794],{"class":1029},[967,3437,3438],{"class":969,"line":1797},[967,3439,1238],{"class":977},[967,3441,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462],{"class":969,"line":1802},[967,3443,1179],{"class":1007},[967,3445,1065],{"class":1003},[967,3447,1069],{"class":1068},[967,3449,1193],{"class":1007},[967,3451,1075],{"class":977},[967,3453,1114],{"class":1003},[967,3455,1008],{"class":1007},[967,3457,1065],{"class":1003},[967,3459,1821],{"class":1254},[967,3461,1258],{"class":977},[967,3463,1011],{"class":977},[967,3465,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484],{"class":969,"line":1828},[967,3467,1831],{"class":973},[967,3469,1310],{"class":977},[967,3471,1836],{"class":1029},[967,3473,1839],{"class":977},[967,3475,1821],{"class":1227},[967,3477,1272],{"class":977},[967,3479,1365],{"class":1227},[967,3481,1258],{"class":977},[967,3483,1850],{"class":973},[967,3485,1853],{"class":977},[967,3487,3488,3490,3492],{"class":969,"line":1856},[967,3489,1638],{"class":977},[967,3491,1045],{"class":1029},[967,3493,1033],{"class":977},[967,3495,3496,3498,3500,3502,3504,3506],{"class":969,"line":1865},[967,3497,1190],{"class":1029},[967,3499,1193],{"class":977},[967,3501,1821],{"class":1227},[967,3503,1272],{"class":977},[967,3505,1275],{"class":1227},[967,3507,1033],{"class":977},[967,3509,3510,3512,3514,3516,3518,3520,3522,3524,3526],{"class":969,"line":1880},[967,3511,1204],{"class":1029},[967,3513,1193],{"class":977},[967,3515,1209],{"class":977},[967,3517,1212],{"class":1003},[967,3519,1215],{"class":977},[967,3521,1293],{"class":1029},[967,3523,1109],{"class":977},[967,3525,1298],{"class":1068},[967,3527,1301],{"class":977},[967,3529,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556],{"class":969,"line":1901},[967,3531,1307],{"class":973},[967,3533,1310],{"class":977},[967,3535,1313],{"class":1003},[967,3537,1316],{"class":1029},[967,3539,1319],{"class":1068},[967,3541,1322],{"class":1029},[967,3543,1325],{"class":977},[967,3545,1328],{"class":1029},[967,3547,1331],{"class":977},[967,3549,1030],{"class":1029},[967,3551,1325],{"class":977},[967,3553,1338],{"class":1029},[967,3555,1928],{"class":977},[967,3557,1011],{"class":977},[967,3559,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580],{"class":969,"line":1933},[967,3561,1347],{"class":1227},[967,3563,1215],{"class":977},[967,3565,1352],{"class":1029},[967,3567,1355],{"class":977},[967,3569,1358],{"class":977},[967,3571,1821],{"class":1227},[967,3573,1272],{"class":977},[967,3575,1365],{"class":1227},[967,3577,1215],{"class":977},[967,3579,1352],{"class":1029},[967,3581,1301],{"class":977},[967,3583,3584],{"class":969,"line":1958},[967,3585,1961],{"class":977},[967,3587,3588,3590],{"class":969,"line":1964},[967,3589,1681],{"class":973},[967,3591,1853],{"class":977},[967,3593,3594],{"class":969,"line":1971},[967,3595,1238],{"class":977},[967,3597,3598,3600,3602,3604,3606,3608,3610,3613,3615,3617],{"class":969,"line":1976},[967,3599,1179],{"class":1007},[967,3601,1065],{"class":1003},[967,3603,1069],{"class":1068},[967,3605,1193],{"class":1007},[967,3607,1075],{"class":977},[967,3609,955],{"class":1007},[967,3611,3612],{"class":1003},"&&",[967,3614,1821],{"class":1254},[967,3616,1258],{"class":977},[967,3618,1011],{"class":977},[967,3620,3621],{"class":969,"line":2003},[967,3622,3624],{"class":3623},"sHwdD","        \u002F\u002F 交换两个 String 指向的内容...\n",[967,3626,3627,3630,3633,3635,3637],{"class":969,"line":2028},[967,3628,3629],{"class":1003},"        auto",[967,3631,3632],{"class":1029}," tempStr",[967,3634,1161],{"class":977},[967,3636,1365],{"class":1029},[967,3638,1167],{"class":977},[967,3640,3641,3643,3645,3647,3649,3651],{"class":969,"line":2060},[967,3642,1204],{"class":1029},[967,3644,1193],{"class":977},[967,3646,1821],{"class":1227},[967,3648,1272],{"class":977},[967,3650,1365],{"class":1227},[967,3652,1033],{"class":977},[967,3654,3655,3658,3660,3662,3664,3666],{"class":969,"line":2092},[967,3656,3657],{"class":1227},"        assignVal",[967,3659,1272],{"class":977},[967,3661,1365],{"class":1227},[967,3663,1358],{"class":977},[967,3665,3632],{"class":1029},[967,3667,1033],{"class":977},[967,3669,3670],{"class":969,"line":2100},[967,3671,3672],{"class":3623},"        \u002F\u002F ...以及它们的长度\n",[967,3674,3675,3677,3680,3682,3684],{"class":969,"line":2105},[967,3676,3629],{"class":1003},[967,3678,3679],{"class":1029}," tempLen",[967,3681,1161],{"class":977},[967,3683,1275],{"class":1029},[967,3685,1167],{"class":977},[967,3687,3688,3690,3692,3694,3696,3698],{"class":969,"line":2113},[967,3689,1190],{"class":1029},[967,3691,1193],{"class":977},[967,3693,1821],{"class":1227},[967,3695,1272],{"class":977},[967,3697,1275],{"class":1227},[967,3699,1033],{"class":977},[967,3701,3702,3704,3706,3708,3710,3712],{"class":969,"line":2118},[967,3703,3657],{"class":1227},[967,3705,1272],{"class":977},[967,3707,1275],{"class":1227},[967,3709,1358],{"class":977},[967,3711,3679],{"class":1029},[967,3713,1033],{"class":977},[967,3715,3716,3718],{"class":969,"line":2135},[967,3717,1681],{"class":973},[967,3719,1853],{"class":977},[967,3721,3722],{"class":969,"line":2154},[967,3723,1238],{"class":977},[967,3725,3726],{"class":969,"line":2164},[967,3727,1135],{"emptyLinePlaceholder":1134},[967,3729,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750],{"class":969,"line":2169},[967,3731,1979],{"class":1003},[967,3733,1069],{"class":1068},[967,3735,1839],{"class":1007},[967,3737,1075],{"class":977},[967,3739,1114],{"class":1003},[967,3741,1008],{"class":1007},[967,3743,1065],{"class":1003},[967,3745,1994],{"class":1254},[967,3747,1258],{"class":977},[967,3749,1090],{"class":1003},[967,3751,1011],{"class":977},[967,3753,3754,3756,3758,3760,3762,3764,3766,3768,3770,3772],{"class":969,"line":2174},[967,3755,1831],{"class":973},[967,3757,1310],{"class":977},[967,3759,1293],{"class":1029},[967,3761,2012],{"class":977},[967,3763,1994],{"class":1227},[967,3765,1272],{"class":977},[967,3767,1275],{"class":1227},[967,3769,1258],{"class":977},[967,3771,1850],{"class":973},[967,3773,2025],{"class":977},[967,3775,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794,3796,3798,3800,3802],{"class":969,"line":2186},[967,3777,1307],{"class":973},[967,3779,1310],{"class":977},[967,3781,1313],{"class":1003},[967,3783,1316],{"class":1029},[967,3785,1319],{"class":1068},[967,3787,1322],{"class":1029},[967,3789,1325],{"class":977},[967,3791,1328],{"class":1029},[967,3793,2047],{"class":977},[967,3795,1030],{"class":1029},[967,3797,1325],{"class":977},[967,3799,1338],{"class":1029},[967,3801,1928],{"class":977},[967,3803,1011],{"class":977},[967,3805,3806,3808,3810,3812,3814,3816,3818,3820,3822,3824,3826,3828,3830],{"class":969,"line":2195},[967,3807,2063],{"class":973},[967,3809,1310],{"class":977},[967,3811,1365],{"class":1227},[967,3813,1215],{"class":977},[967,3815,1352],{"class":1029},[967,3817,1355],{"class":977},[967,3819,2076],{"class":977},[967,3821,1994],{"class":1227},[967,3823,1272],{"class":977},[967,3825,1365],{"class":1227},[967,3827,1215],{"class":977},[967,3829,1352],{"class":1029},[967,3831,2089],{"class":977},[967,3833,3834,3836],{"class":969,"line":2200},[967,3835,2095],{"class":973},[967,3837,2025],{"class":977},[967,3839,3840],{"class":969,"line":2205},[967,3841,1961],{"class":977},[967,3843,3844,3846],{"class":969,"line":2224},[967,3845,1681],{"class":973},[967,3847,2110],{"class":977},[967,3849,3850],{"class":969,"line":2255},[967,3851,1238],{"class":977},[967,3853,3854,3856,3858,3860,3862,3864],{"class":969,"line":2282},[967,3855,2121],{"class":1003},[967,3857,1069],{"class":1068},[967,3859,2126],{"class":1007},[967,3861,1182],{"class":977},[967,3863,1090],{"class":1003},[967,3865,1011],{"class":977},[967,3867,3868,3870,3872,3874,3876,3878,3880,3882],{"class":969,"line":2287},[967,3869,1831],{"class":973},[967,3871,1310],{"class":977},[967,3873,1293],{"class":1029},[967,3875,1839],{"class":977},[967,3877,1196],{"class":1068},[967,3879,1258],{"class":977},[967,3881,1850],{"class":973},[967,3883,2025],{"class":977},[967,3885,3886,3888,3890],{"class":969,"line":2296},[967,3887,2157],{"class":973},[967,3889,1850],{"class":973},[967,3891,2110],{"class":977},[967,3893,3894],{"class":969,"line":2301},[967,3895,1238],{"class":977},[967,3897,3898],{"class":969,"line":2306},[967,3899,1135],{"emptyLinePlaceholder":1134},[967,3901,3902,3904,3906,3908],{"class":969,"line":2340},[967,3903,1026],{"class":1003},[967,3905,2179],{"class":1178},[967,3907,1182],{"class":977},[967,3909,1011],{"class":977},[967,3911,3912,3914,3916],{"class":969,"line":2378},[967,3913,1681],{"class":973},[967,3915,1030],{"class":1029},[967,3917,1033],{"class":977},[967,3919,3920],{"class":969,"line":2404},[967,3921,1238],{"class":977},[967,3923,3924],{"class":969,"line":2436},[967,3925,1135],{"emptyLinePlaceholder":1134},[967,3927,3928,3930,3932,3934,3936,3938,3940],{"class":969,"line":2451},[967,3929,1026],{"class":1003},[967,3931,2210],{"class":1178},[967,3933,1075],{"class":977},[967,3935,2215],{"class":1003},[967,3937,1510],{"class":1254},[967,3939,1258],{"class":977},[967,3941,1011],{"class":977},[967,3943,3944,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970],{"class":969,"line":2461},[967,3945,1307],{"class":973},[967,3947,1310],{"class":977},[967,3949,1313],{"class":1003},[967,3951,1316],{"class":1029},[967,3953,1319],{"class":1068},[967,3955,1322],{"class":1029},[967,3957,1325],{"class":977},[967,3959,1328],{"class":1029},[967,3961,1331],{"class":977},[967,3963,1030],{"class":1029},[967,3965,1325],{"class":977},[967,3967,1338],{"class":1029},[967,3969,1928],{"class":977},[967,3971,1011],{"class":977},[967,3973,3974,3976,3978,3980,3982,3984,3986,3988,3990,3992,3994],{"class":969,"line":2472},[967,3975,2063],{"class":973},[967,3977,1310],{"class":977},[967,3979,2262],{"class":1029},[967,3981,1839],{"class":977},[967,3983,1045],{"class":1227},[967,3985,1215],{"class":977},[967,3987,1352],{"class":1029},[967,3989,2273],{"class":977},[967,3991,1850],{"class":973},[967,3993,1338],{"class":1029},[967,3995,1033],{"class":977},[967,3997,3998],{"class":969,"line":2478},[967,3999,1961],{"class":977},[967,4001,4002,4004,4006],{"class":969,"line":2520},[967,4003,1681],{"class":973},[967,4005,1158],{"class":1029},[967,4007,1033],{"class":977},[967,4009,4010],{"class":969,"line":2536},[967,4011,1238],{"class":977},[967,4013,4014],{"class":969,"line":2545},[967,4015,1167],{"class":977},[967,4017,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036,4038,4040,4042,4044,4046],{"class":969,"line":2550},[967,4019,955],{"class":1007},[967,4021,1069],{"class":1068},[967,4023,1109],{"class":1007},[967,4025,1075],{"class":977},[967,4027,1114],{"class":1003},[967,4029,1008],{"class":1007},[967,4031,1065],{"class":1003},[967,4033,2323],{"class":1254},[967,4035,1087],{"class":977},[967,4037,1090],{"class":1003},[967,4039,1008],{"class":1007},[967,4041,1065],{"class":1003},[967,4043,1761],{"class":1254},[967,4045,1258],{"class":977},[967,4047,1011],{"class":977},[967,4049,4050,4052,4054,4056,4058,4060,4062,4064,4066,4068,4070,4072,4074,4076,4078,4080],{"class":969,"line":2555},[967,4051,1039],{"class":1003},[967,4053,1042],{"class":977},[967,4055,2347],{"class":1227},[967,4057,2350],{"class":977},[967,4059,1212],{"class":1003},[967,4061,1215],{"class":977},[967,4063,938],{"class":1227},[967,4065,1272],{"class":977},[967,4067,1275],{"class":1227},[967,4069,1779],{"class":977},[967,4071,1761],{"class":1227},[967,4073,1272],{"class":977},[967,4075,1275],{"class":1227},[967,4077,1779],{"class":977},[967,4079,1298],{"class":1068},[967,4081,2375],{"class":977},[967,4083,4084,4086,4088,4090,4092,4094,4096,4098,4100,4102],{"class":969,"line":2568},[967,4085,2381],{"class":1007},[967,4087,1059],{"class":977},[967,4089,2386],{"class":1178},[967,4091,1075],{"class":977},[967,4093,2391],{"class":1227},[967,4095,1087],{"class":977},[967,4097,2323],{"class":1227},[967,4099,1272],{"class":977},[967,4101,1365],{"class":1227},[967,4103,1097],{"class":977},[967,4105,4106,4108,4110,4112,4114,4116,4118,4120,4122,4124,4126,4128,4130,4132],{"class":969,"line":2605},[967,4107,2381],{"class":1007},[967,4109,1059],{"class":977},[967,4111,2386],{"class":1178},[967,4113,1075],{"class":977},[967,4115,2415],{"class":1227},[967,4117,1109],{"class":977},[967,4119,2323],{"class":1227},[967,4121,1272],{"class":977},[967,4123,1275],{"class":1227},[967,4125,1087],{"class":977},[967,4127,1761],{"class":1227},[967,4129,1272],{"class":977},[967,4131,1365],{"class":1227},[967,4133,1097],{"class":977},[967,4135,4136,4138,4140,4142,4144],{"class":969,"line":2622},[967,4137,2439],{"class":1227},[967,4139,2442],{"class":1178},[967,4141,1075],{"class":977},[967,4143,2391],{"class":1227},[967,4145,1097],{"class":977},[967,4147,4148,4150,4152],{"class":969,"line":2648},[967,4149,2454],{"class":977},[967,4151,2347],{"class":1227},[967,4153,1033],{"class":977},[967,4155,4157,4159,4161],{"class":969,"line":4156},102,[967,4158,2464],{"class":973},[967,4160,2467],{"class":1227},[967,4162,1033],{"class":977},[967,4164,4166],{"class":969,"line":4165},103,[967,4167,2475],{"class":977},[967,4169,4171,4173,4175,4177,4179,4181,4183,4185,4187,4189,4191,4193,4195,4197,4199,4201,4203,4205,4207],{"class":969,"line":4170},104,[967,4172,1078],{"class":1007},[967,4174,1059],{"class":977},[967,4176,1062],{"class":1007},[967,4178,1065],{"class":1003},[967,4180,1069],{"class":1068},[967,4182,1072],{"class":1007},[967,4184,1075],{"class":977},[967,4186,1078],{"class":1007},[967,4188,1059],{"class":977},[967,4190,1062],{"class":1007},[967,4192,1065],{"class":1003},[967,4194,2503],{"class":1254},[967,4196,1087],{"class":977},[967,4198,1090],{"class":1003},[967,4200,1008],{"class":1007},[967,4202,1065],{"class":1003},[967,4204,1761],{"class":1254},[967,4206,1258],{"class":977},[967,4208,1011],{"class":977},[967,4210,4212,4214,4216,4218,4220,4222],{"class":969,"line":4211},105,[967,4213,2523],{"class":1227},[967,4215,1072],{"class":977},[967,4217,1761],{"class":1227},[967,4219,1272],{"class":977},[967,4221,1365],{"class":1227},[967,4223,1033],{"class":977},[967,4225,4227,4229,4231],{"class":969,"line":4226},106,[967,4228,2464],{"class":973},[967,4230,2503],{"class":1227},[967,4232,1033],{"class":977},[967,4234,4236],{"class":969,"line":4235},107,[967,4237,2475],{"class":977},[967,4239,4241],{"class":969,"line":4240},108,[967,4242,1135],{"emptyLinePlaceholder":1134},[967,4244,4246,4248,4250,4252],{"class":969,"line":4245},109,[967,4247,2558],{"class":1003},[967,4249,2561],{"class":1178},[967,4251,1182],{"class":977},[967,4253,1011],{"class":977},[967,4255,4257,4259,4261,4263,4265,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285],{"class":969,"line":4256},110,[967,4258,2439],{"class":1227},[967,4260,938],{"class":1178},[967,4262,1075],{"class":977},[967,4264,2577],{"class":977},[967,4266,2580],{"class":981},[967,4268,2577],{"class":977},[967,4270,2585],{"class":977},[967,4272,1761],{"class":1178},[967,4274,1075],{"class":977},[967,4276,2577],{"class":977},[967,4278,2594],{"class":981},[967,4280,2577],{"class":977},[967,4282,2585],{"class":977},[967,4284,1510],{"class":1227},[967,4286,1033],{"class":977},[967,4288,4290,4292,4294,4296,4298,4300],{"class":969,"line":4289},111,[967,4291,2608],{"class":1227},[967,4293,1193],{"class":977},[967,4295,2613],{"class":1227},[967,4297,1109],{"class":977},[967,4299,1761],{"class":1227},[967,4301,1033],{"class":977},[967,4303,4305,4307,4309,4311,4313,4315,4317,4319,4321,4323],{"class":969,"line":4304},112,[967,4306,2381],{"class":1007},[967,4308,1059],{"class":977},[967,4310,2629],{"class":1227},[967,4312,1072],{"class":977},[967,4314,2634],{"class":1227},[967,4316,1072],{"class":977},[967,4318,1056],{"class":1007},[967,4320,1059],{"class":977},[967,4322,2643],{"class":1227},[967,4324,1033],{"class":977},[967,4326,4328],{"class":969,"line":4327},113,[967,4329,2475],{"class":977},[918,4331,4332,4333,4335,4336,4339,4340,4342],{},"这个 ",[953,4334,2674],{}," 重载接受一个 ",[953,4337,4338],{},"String&&"," 类型的形参，换句话说它所期望的实参是右值。当一个右值出现在 ",[953,4341,2674],{}," 右侧时，这个重载就会被调用。",[918,4344,4332,4345,4347,4348,4351,4352,4355,4356,4358,4359,4361,4362,4365],{},[953,4346,2674],{}," 里面交换了 ",[953,4349,4350],{},"String&& assignVal"," 和 ",[953,4353,4354],{},"this"," 指代的两个变量的资源。当交换完成后，",[953,4357,4354],{}," 也就是 ",[953,4360,2674],{}," 左侧的对象就顺理成章地持有了原本右侧对象持有的资源；而右侧的临时对象现在持有的是（本应被覆盖的）原有资源。稍后 ",[953,4363,4364],{},"b + c"," 这个右值析构的时候，原有资源就跟着释放掉了。",[918,4367,4368,4369,4372,4373,4376],{},"这样的赋值重载称为",[2756,4370,4371],{},"移动赋值重载","（Move assignment overload），类似的当然有",[2756,4374,4375],{},"移动构造函数","了，代码如下：",[958,4378,4380],{"className":960,"code":4379,"language":962,"meta":963,"style":963},"#include \u003Ccstring>\n#include \u003Ciostream>\nclass String {\nprivate:\n    unsigned len;\n    char* str;\n    friend std::ostream& operator\u003C\u003C(std::ostream&, const String&);\n    friend String operator+(const String&, const String&);\n\npublic:\n    static constexpr unsigned npos{4294967295};\n\n    String() {\n        len = 0;\n        str = new char[1]{'\\0'};\n    }\n    String(const String& initVal) {\n        len = initVal.len;\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++)\n            str[i] = initVal.str[i];\n    }\n    String(String&& initVal) {\n        len = initVal.len;\n        str = initVal.str;\n        initVal.str = new char[1]{'\\0'};\n        initVal.len = 0;\n    }\n    String(const char* initVal) {\n        len = std::strlen(initVal);\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++)\n            str[i] = initVal[i];\n    }\n    String(unsigned num, char c) {\n        len = num;\n        str = new char[num + 1];\n        for (unsigned i{0}; i \u003C= num; i++)\n            str[i] = c;\n        str[num] = '\\0';\n    }\n    ~String() {\n        delete[] str;\n    }\n\n    char& operator[](\u002Funsigned pos) {\n        return str[pos];\n    }\n    const char& operator[](\u002Funsigned pos) const {\n        return str[pos];\n    }\n    String& operator+=(const String& b) {\n        *this = *this + b;\n        return *this; \n    }\n    String& operator=(const String& assignVal) {\n        if (str == assignVal.str) return *this;\n        delete[] str;\n        len = assignVal.len;\n        str = new char[len + 1];\n        for (unsigned i{0}; i \u003C= len; i++) {\n            str[i] = assignVal.str[i];\n        }\n        return *this;\n    }\n\n    String& operator=(String&& assignVal) {\n        auto tempStr{str};\n        str = assignVal.str;\n        assignVal.str = tempStr;\n        auto tempLen{len};\n        len = assignVal.len;\n        assignVal.len = tempLen;\n        return *this;\n    }\n\n    bool operator==(const String& rhs) const {\n        if (len != rhs.len) return false;\n        for (unsigned i{0}; i \u003C len; i++) {\n            if (str[i] != rhs.str[i])\n                return false;\n        }\n        return true;\n    }\n    explicit operator bool() const {\n        if (len == 0) return false;\n        else return true;\n    }\n\n    unsigned length() {\n        return len;\n    }\n\n    unsigned find(char c) {\n        for (unsigned i{0}; i \u003C= len; i++) {\n            if (c == str[i]) return i;\n        }\n        return npos;\n    }\n};\nString operator+(const String& a, const String& b) {\n    char* newstr{new char[a.len + b.len + 1]};\n    std::strcpy(newstr, a.str);\n    std::strcpy(newstr + a.len, b.str);\n    String result(newstr);\n    delete[] newstr;\n    return result;\n}\nstd::ostream& operator\u003C\u003C(std::ostream& os, const String& b) {\n    os \u003C\u003C b.str;\n    return os;\n}\n\nint main() {\n    String a(\"abc\"), b(\"def\"), c;\n    c = a + b;\n    std::cout \u003C\u003C c \u003C\u003C std::endl;\n}\n",[953,4381,4382,4392,4402,4410,4416,4424,4434,4470,4498,4502,4508,4524,4528,4536,4546,4570,4574,4592,4606,4626,4654,4678,4682,4698,4712,4726,4755,4769,4773,4789,4807,4827,4855,4875,4879,4899,4909,4929,4957,4973,4993,4997,5005,5013,5017,5021,5039,5051,5055,5077,5089,5093,5117,5131,5139,5143,5167,5189,5197,5211,5231,5261,5285,5289,5295,5299,5303,5325,5337,5351,5365,5377,5391,5405,5411,5415,5419,5443,5465,5495,5523,5529,5533,5539,5543,5557,5575,5583,5587,5591,5601,5609,5613,5617,5633,5663,5687,5691,5699,5703,5707,5739,5773,5795,5825,5837,5845,5853,5857,5897,5911,5919,5923,5927,5938,5971,5986,6009],{"__ignoreMap":963},[967,4383,4384,4386,4388,4390],{"class":969,"line":970},[967,4385,974],{"class":973},[967,4387,978],{"class":977},[967,4389,982],{"class":981},[967,4391,985],{"class":977},[967,4393,4394,4396,4398,4400],{"class":969,"line":988},[967,4395,974],{"class":973},[967,4397,978],{"class":977},[967,4399,995],{"class":981},[967,4401,985],{"class":977},[967,4403,4404,4406,4408],{"class":969,"line":1000},[967,4405,1004],{"class":1003},[967,4407,1008],{"class":1007},[967,4409,1011],{"class":977},[967,4411,4412,4414],{"class":969,"line":1014},[967,4413,1017],{"class":1003},[967,4415,1020],{"class":977},[967,4417,4418,4420,4422],{"class":969,"line":1023},[967,4419,1026],{"class":1003},[967,4421,1030],{"class":1029},[967,4423,1033],{"class":977},[967,4425,4426,4428,4430,4432],{"class":969,"line":1036},[967,4427,1039],{"class":1003},[967,4429,1042],{"class":977},[967,4431,1045],{"class":1029},[967,4433,1033],{"class":977},[967,4435,4436,4438,4440,4442,4444,4446,4448,4450,4452,4454,4456,4458,4460,4462,4464,4466,4468],{"class":969,"line":1050},[967,4437,1053],{"class":1003},[967,4439,1056],{"class":1007},[967,4441,1059],{"class":977},[967,4443,1062],{"class":1007},[967,4445,1065],{"class":1003},[967,4447,1069],{"class":1068},[967,4449,1072],{"class":1007},[967,4451,1075],{"class":977},[967,4453,1078],{"class":1007},[967,4455,1059],{"class":977},[967,4457,1062],{"class":1007},[967,4459,1065],{"class":1003},[967,4461,1087],{"class":977},[967,4463,1090],{"class":1003},[967,4465,1008],{"class":1007},[967,4467,1065],{"class":1003},[967,4469,1097],{"class":977},[967,4471,4472,4474,4476,4478,4480,4482,4484,4486,4488,4490,4492,4494,4496],{"class":969,"line":1100},[967,4473,1053],{"class":1003},[967,4475,1008],{"class":1007},[967,4477,1069],{"class":1068},[967,4479,1109],{"class":1007},[967,4481,1075],{"class":977},[967,4483,1114],{"class":1003},[967,4485,1008],{"class":1007},[967,4487,1065],{"class":1003},[967,4489,1087],{"class":977},[967,4491,1090],{"class":1003},[967,4493,1008],{"class":1007},[967,4495,1065],{"class":1003},[967,4497,1097],{"class":977},[967,4499,4500],{"class":969,"line":1131},[967,4501,1135],{"emptyLinePlaceholder":1134},[967,4503,4504,4506],{"class":969,"line":1138},[967,4505,1141],{"class":1003},[967,4507,1020],{"class":977},[967,4509,4510,4512,4514,4516,4518,4520,4522],{"class":969,"line":1146},[967,4511,1149],{"class":1003},[967,4513,1152],{"class":1003},[967,4515,1155],{"class":1003},[967,4517,1158],{"class":1029},[967,4519,1161],{"class":977},[967,4521,1164],{"class":1068},[967,4523,1167],{"class":977},[967,4525,4526],{"class":969,"line":1170},[967,4527,1135],{"emptyLinePlaceholder":1134},[967,4529,4530,4532,4534],{"class":969,"line":1175},[967,4531,1179],{"class":1178},[967,4533,1182],{"class":977},[967,4535,1011],{"class":977},[967,4537,4538,4540,4542,4544],{"class":969,"line":1187},[967,4539,1190],{"class":1029},[967,4541,1193],{"class":977},[967,4543,1196],{"class":1068},[967,4545,1033],{"class":977},[967,4547,4548,4550,4552,4554,4556,4558,4560,4562,4564,4566,4568],{"class":969,"line":1201},[967,4549,1204],{"class":1029},[967,4551,1193],{"class":977},[967,4553,1209],{"class":977},[967,4555,1212],{"class":1003},[967,4557,1215],{"class":977},[967,4559,1218],{"class":1068},[967,4561,1221],{"class":977},[967,4563,1224],{"class":977},[967,4565,1228],{"class":1227},[967,4567,1224],{"class":977},[967,4569,1167],{"class":977},[967,4571,4572],{"class":969,"line":1235},[967,4573,1238],{"class":977},[967,4575,4576,4578,4580,4582,4584,4586,4588,4590],{"class":969,"line":1241},[967,4577,1179],{"class":1178},[967,4579,1075],{"class":977},[967,4581,1114],{"class":1003},[967,4583,1008],{"class":1007},[967,4585,1065],{"class":1003},[967,4587,1255],{"class":1254},[967,4589,1258],{"class":977},[967,4591,1011],{"class":977},[967,4593,4594,4596,4598,4600,4602,4604],{"class":969,"line":1263},[967,4595,1190],{"class":1029},[967,4597,1193],{"class":977},[967,4599,1255],{"class":1227},[967,4601,1272],{"class":977},[967,4603,1275],{"class":1227},[967,4605,1033],{"class":977},[967,4607,4608,4610,4612,4614,4616,4618,4620,4622,4624],{"class":969,"line":1280},[967,4609,1204],{"class":1029},[967,4611,1193],{"class":977},[967,4613,1209],{"class":977},[967,4615,1212],{"class":1003},[967,4617,1215],{"class":977},[967,4619,1293],{"class":1029},[967,4621,1109],{"class":977},[967,4623,1298],{"class":1068},[967,4625,1301],{"class":977},[967,4627,4628,4630,4632,4634,4636,4638,4640,4642,4644,4646,4648,4650,4652],{"class":969,"line":1304},[967,4629,1307],{"class":973},[967,4631,1310],{"class":977},[967,4633,1313],{"class":1003},[967,4635,1316],{"class":1029},[967,4637,1319],{"class":1068},[967,4639,1322],{"class":1029},[967,4641,1325],{"class":977},[967,4643,1328],{"class":1029},[967,4645,1331],{"class":977},[967,4647,1030],{"class":1029},[967,4649,1325],{"class":977},[967,4651,1338],{"class":1029},[967,4653,1341],{"class":977},[967,4655,4656,4658,4660,4662,4664,4666,4668,4670,4672,4674,4676],{"class":969,"line":1344},[967,4657,1347],{"class":1227},[967,4659,1215],{"class":977},[967,4661,1352],{"class":1029},[967,4663,1355],{"class":977},[967,4665,1358],{"class":977},[967,4667,1255],{"class":1227},[967,4669,1272],{"class":977},[967,4671,1365],{"class":1227},[967,4673,1215],{"class":977},[967,4675,1352],{"class":1029},[967,4677,1301],{"class":977},[967,4679,4680],{"class":969,"line":1374},[967,4681,1238],{"class":977},[967,4683,4684,4686,4688,4690,4692,4694,4696],{"class":969,"line":1379},[967,4685,1179],{"class":1178},[967,4687,1075],{"class":977},[967,4689,955],{"class":1007},[967,4691,3612],{"class":1003},[967,4693,1255],{"class":1254},[967,4695,1258],{"class":977},[967,4697,1011],{"class":977},[967,4699,4700,4702,4704,4706,4708,4710],{"class":969,"line":1397},[967,4701,1190],{"class":1029},[967,4703,1193],{"class":977},[967,4705,1255],{"class":1227},[967,4707,1272],{"class":977},[967,4709,1275],{"class":1227},[967,4711,1033],{"class":977},[967,4713,4714,4716,4718,4720,4722,4724],{"class":969,"line":1418},[967,4715,1204],{"class":1029},[967,4717,1193],{"class":977},[967,4719,1255],{"class":1227},[967,4721,1272],{"class":977},[967,4723,1365],{"class":1227},[967,4725,1033],{"class":977},[967,4727,4728,4731,4733,4735,4737,4739,4741,4743,4745,4747,4749,4751,4753],{"class":969,"line":1439},[967,4729,4730],{"class":1227},"        initVal",[967,4732,1272],{"class":977},[967,4734,1365],{"class":1227},[967,4736,1358],{"class":977},[967,4738,1209],{"class":977},[967,4740,1212],{"class":1003},[967,4742,1215],{"class":977},[967,4744,1218],{"class":1068},[967,4746,1221],{"class":977},[967,4748,1224],{"class":977},[967,4750,1228],{"class":1227},[967,4752,1224],{"class":977},[967,4754,1167],{"class":977},[967,4756,4757,4759,4761,4763,4765,4767],{"class":969,"line":1468},[967,4758,4730],{"class":1227},[967,4760,1272],{"class":977},[967,4762,1275],{"class":1227},[967,4764,1358],{"class":977},[967,4766,1196],{"class":1068},[967,4768,1033],{"class":977},[967,4770,4771],{"class":969,"line":1489},[967,4772,1238],{"class":977},[967,4774,4775,4777,4779,4781,4783,4785,4787],{"class":969,"line":1494},[967,4776,1179],{"class":1178},[967,4778,1075],{"class":977},[967,4780,1114],{"class":1003},[967,4782,1388],{"class":1003},[967,4784,1255],{"class":1254},[967,4786,1258],{"class":977},[967,4788,1011],{"class":977},[967,4790,4791,4793,4795,4797,4799,4801,4803,4805],{"class":969,"line":1517},[967,4792,1190],{"class":1029},[967,4794,1193],{"class":977},[967,4796,1056],{"class":1007},[967,4798,1059],{"class":977},[967,4800,1408],{"class":1178},[967,4802,1075],{"class":977},[967,4804,1413],{"class":1029},[967,4806,1097],{"class":977},[967,4808,4809,4811,4813,4815,4817,4819,4821,4823,4825],{"class":969,"line":1528},[967,4810,1204],{"class":1029},[967,4812,1193],{"class":977},[967,4814,1209],{"class":977},[967,4816,1212],{"class":1003},[967,4818,1215],{"class":977},[967,4820,1293],{"class":1029},[967,4822,1109],{"class":977},[967,4824,1298],{"class":1068},[967,4826,1301],{"class":977},[967,4828,4829,4831,4833,4835,4837,4839,4841,4843,4845,4847,4849,4851,4853],{"class":969,"line":1550},[967,4830,1307],{"class":973},[967,4832,1310],{"class":977},[967,4834,1313],{"class":1003},[967,4836,1316],{"class":1029},[967,4838,1319],{"class":1068},[967,4840,1322],{"class":1029},[967,4842,1325],{"class":977},[967,4844,1328],{"class":1029},[967,4846,1331],{"class":977},[967,4848,1030],{"class":1029},[967,4850,1325],{"class":977},[967,4852,1338],{"class":1029},[967,4854,1341],{"class":977},[967,4856,4857,4859,4861,4863,4865,4867,4869,4871,4873],{"class":969,"line":1579},[967,4858,1347],{"class":1227},[967,4860,1215],{"class":977},[967,4862,1352],{"class":1029},[967,4864,1355],{"class":977},[967,4866,1358],{"class":977},[967,4868,1255],{"class":1227},[967,4870,1215],{"class":977},[967,4872,1352],{"class":1029},[967,4874,1301],{"class":977},[967,4876,4877],{"class":969,"line":1596},[967,4878,1238],{"class":977},[967,4880,4881,4883,4885,4887,4889,4891,4893,4895,4897],{"class":969,"line":1620},[967,4882,1179],{"class":1178},[967,4884,1075],{"class":977},[967,4886,1313],{"class":1003},[967,4888,1503],{"class":1254},[967,4890,1087],{"class":977},[967,4892,1212],{"class":1003},[967,4894,1510],{"class":1254},[967,4896,1258],{"class":977},[967,4898,1011],{"class":977},[967,4900,4901,4903,4905,4907],{"class":969,"line":1625},[967,4902,1190],{"class":1029},[967,4904,1193],{"class":977},[967,4906,1503],{"class":1029},[967,4908,1033],{"class":977},[967,4910,4911,4913,4915,4917,4919,4921,4923,4925,4927],{"class":969,"line":1635},[967,4912,1204],{"class":1029},[967,4914,1193],{"class":977},[967,4916,1209],{"class":977},[967,4918,1212],{"class":1003},[967,4920,1215],{"class":977},[967,4922,1541],{"class":1029},[967,4924,1109],{"class":977},[967,4926,1298],{"class":1068},[967,4928,1301],{"class":977},[967,4930,4931,4933,4935,4937,4939,4941,4943,4945,4947,4949,4951,4953,4955],{"class":969,"line":1645},[967,4932,1307],{"class":973},[967,4934,1310],{"class":977},[967,4936,1313],{"class":1003},[967,4938,1316],{"class":1029},[967,4940,1319],{"class":1068},[967,4942,1322],{"class":1029},[967,4944,1325],{"class":977},[967,4946,1328],{"class":1029},[967,4948,1331],{"class":977},[967,4950,1503],{"class":1029},[967,4952,1325],{"class":977},[967,4954,1338],{"class":1029},[967,4956,1341],{"class":977},[967,4958,4959,4961,4963,4965,4967,4969,4971],{"class":969,"line":1650},[967,4960,1347],{"class":1227},[967,4962,1215],{"class":977},[967,4964,1352],{"class":1029},[967,4966,1355],{"class":977},[967,4968,1358],{"class":977},[967,4970,1510],{"class":1029},[967,4972,1033],{"class":977},[967,4974,4975,4977,4979,4981,4983,4985,4987,4989,4991],{"class":969,"line":1655},[967,4976,1599],{"class":1227},[967,4978,1215],{"class":977},[967,4980,1604],{"class":1029},[967,4982,1355],{"class":977},[967,4984,1358],{"class":977},[967,4986,1611],{"class":977},[967,4988,1228],{"class":1227},[967,4990,1224],{"class":977},[967,4992,1033],{"class":977},[967,4994,4995],{"class":969,"line":1678},[967,4996,1238],{"class":977},[967,4998,4999,5001,5003],{"class":969,"line":1693},[967,5000,1628],{"class":1178},[967,5002,1182],{"class":977},[967,5004,1011],{"class":977},[967,5006,5007,5009,5011],{"class":969,"line":1698},[967,5008,1638],{"class":977},[967,5010,1045],{"class":1029},[967,5012,1033],{"class":977},[967,5014,5015],{"class":969,"line":1723},[967,5016,1238],{"class":977},[967,5018,5019],{"class":969,"line":1736},[967,5020,1135],{"emptyLinePlaceholder":1134},[967,5022,5023,5025,5027,5029,5031,5033,5035,5037],{"class":969,"line":1741},[967,5024,1658],{"class":1003},[967,5026,1069],{"class":1068},[967,5028,1663],{"class":1007},[967,5030,1666],{"class":977},[967,5032,1313],{"class":1003},[967,5034,1671],{"class":1254},[967,5036,1258],{"class":977},[967,5038,1011],{"class":977},[967,5040,5041,5043,5045,5047,5049],{"class":969,"line":1768},[967,5042,1681],{"class":973},[967,5044,1045],{"class":1227},[967,5046,1215],{"class":977},[967,5048,1688],{"class":1029},[967,5050,1301],{"class":977},[967,5052,5053],{"class":969,"line":1786},[967,5054,1238],{"class":977},[967,5056,5057,5059,5061,5063,5065,5067,5069,5071,5073,5075],{"class":969,"line":1797},[967,5058,1701],{"class":1003},[967,5060,1704],{"class":1003},[967,5062,1069],{"class":1068},[967,5064,1663],{"class":1007},[967,5066,1666],{"class":977},[967,5068,1313],{"class":1003},[967,5070,1671],{"class":1254},[967,5072,1258],{"class":977},[967,5074,1090],{"class":1003},[967,5076,1011],{"class":977},[967,5078,5079,5081,5083,5085,5087],{"class":969,"line":1802},[967,5080,1681],{"class":973},[967,5082,1045],{"class":1227},[967,5084,1215],{"class":977},[967,5086,1688],{"class":1029},[967,5088,1301],{"class":977},[967,5090,5091],{"class":969,"line":1828},[967,5092,1238],{"class":977},[967,5094,5095,5097,5099,5101,5103,5105,5107,5109,5111,5113,5115],{"class":969,"line":1856},[967,5096,1179],{"class":1007},[967,5098,1065],{"class":1003},[967,5100,1069],{"class":1068},[967,5102,1750],{"class":1007},[967,5104,1075],{"class":977},[967,5106,1114],{"class":1003},[967,5108,1008],{"class":1007},[967,5110,1065],{"class":1003},[967,5112,1761],{"class":1254},[967,5114,1258],{"class":977},[967,5116,1011],{"class":977},[967,5118,5119,5121,5123,5125,5127,5129],{"class":969,"line":1865},[967,5120,1771],{"class":977},[967,5122,1358],{"class":977},[967,5124,1776],{"class":977},[967,5126,1779],{"class":977},[967,5128,1761],{"class":1029},[967,5130,1033],{"class":977},[967,5132,5133,5135,5137],{"class":969,"line":1880},[967,5134,1681],{"class":973},[967,5136,1791],{"class":977},[967,5138,1794],{"class":1029},[967,5140,5141],{"class":969,"line":1901},[967,5142,1238],{"class":977},[967,5144,5145,5147,5149,5151,5153,5155,5157,5159,5161,5163,5165],{"class":969,"line":1933},[967,5146,1179],{"class":1007},[967,5148,1065],{"class":1003},[967,5150,1069],{"class":1068},[967,5152,1193],{"class":1007},[967,5154,1075],{"class":977},[967,5156,1114],{"class":1003},[967,5158,1008],{"class":1007},[967,5160,1065],{"class":1003},[967,5162,1821],{"class":1254},[967,5164,1258],{"class":977},[967,5166,1011],{"class":977},[967,5168,5169,5171,5173,5175,5177,5179,5181,5183,5185,5187],{"class":969,"line":1958},[967,5170,1831],{"class":973},[967,5172,1310],{"class":977},[967,5174,1836],{"class":1029},[967,5176,1839],{"class":977},[967,5178,1821],{"class":1227},[967,5180,1272],{"class":977},[967,5182,1365],{"class":1227},[967,5184,1258],{"class":977},[967,5186,1850],{"class":973},[967,5188,1853],{"class":977},[967,5190,5191,5193,5195],{"class":969,"line":1964},[967,5192,1638],{"class":977},[967,5194,1045],{"class":1029},[967,5196,1033],{"class":977},[967,5198,5199,5201,5203,5205,5207,5209],{"class":969,"line":1971},[967,5200,1190],{"class":1029},[967,5202,1193],{"class":977},[967,5204,1821],{"class":1227},[967,5206,1272],{"class":977},[967,5208,1275],{"class":1227},[967,5210,1033],{"class":977},[967,5212,5213,5215,5217,5219,5221,5223,5225,5227,5229],{"class":969,"line":1976},[967,5214,1204],{"class":1029},[967,5216,1193],{"class":977},[967,5218,1209],{"class":977},[967,5220,1212],{"class":1003},[967,5222,1215],{"class":977},[967,5224,1293],{"class":1029},[967,5226,1109],{"class":977},[967,5228,1298],{"class":1068},[967,5230,1301],{"class":977},[967,5232,5233,5235,5237,5239,5241,5243,5245,5247,5249,5251,5253,5255,5257,5259],{"class":969,"line":2003},[967,5234,1307],{"class":973},[967,5236,1310],{"class":977},[967,5238,1313],{"class":1003},[967,5240,1316],{"class":1029},[967,5242,1319],{"class":1068},[967,5244,1322],{"class":1029},[967,5246,1325],{"class":977},[967,5248,1328],{"class":1029},[967,5250,1331],{"class":977},[967,5252,1030],{"class":1029},[967,5254,1325],{"class":977},[967,5256,1338],{"class":1029},[967,5258,1928],{"class":977},[967,5260,1011],{"class":977},[967,5262,5263,5265,5267,5269,5271,5273,5275,5277,5279,5281,5283],{"class":969,"line":2028},[967,5264,1347],{"class":1227},[967,5266,1215],{"class":977},[967,5268,1352],{"class":1029},[967,5270,1355],{"class":977},[967,5272,1358],{"class":977},[967,5274,1821],{"class":1227},[967,5276,1272],{"class":977},[967,5278,1365],{"class":1227},[967,5280,1215],{"class":977},[967,5282,1352],{"class":1029},[967,5284,1301],{"class":977},[967,5286,5287],{"class":969,"line":2060},[967,5288,1961],{"class":977},[967,5290,5291,5293],{"class":969,"line":2092},[967,5292,1681],{"class":973},[967,5294,1853],{"class":977},[967,5296,5297],{"class":969,"line":2100},[967,5298,1238],{"class":977},[967,5300,5301],{"class":969,"line":2105},[967,5302,1135],{"emptyLinePlaceholder":1134},[967,5304,5305,5307,5309,5311,5313,5315,5317,5319,5321,5323],{"class":969,"line":2113},[967,5306,1179],{"class":1007},[967,5308,1065],{"class":1003},[967,5310,1069],{"class":1068},[967,5312,1193],{"class":1007},[967,5314,1075],{"class":977},[967,5316,955],{"class":1007},[967,5318,3612],{"class":1003},[967,5320,1821],{"class":1254},[967,5322,1258],{"class":977},[967,5324,1011],{"class":977},[967,5326,5327,5329,5331,5333,5335],{"class":969,"line":2118},[967,5328,3629],{"class":1003},[967,5330,3632],{"class":1029},[967,5332,1161],{"class":977},[967,5334,1365],{"class":1029},[967,5336,1167],{"class":977},[967,5338,5339,5341,5343,5345,5347,5349],{"class":969,"line":2135},[967,5340,1204],{"class":1029},[967,5342,1193],{"class":977},[967,5344,1821],{"class":1227},[967,5346,1272],{"class":977},[967,5348,1365],{"class":1227},[967,5350,1033],{"class":977},[967,5352,5353,5355,5357,5359,5361,5363],{"class":969,"line":2154},[967,5354,3657],{"class":1227},[967,5356,1272],{"class":977},[967,5358,1365],{"class":1227},[967,5360,1358],{"class":977},[967,5362,3632],{"class":1029},[967,5364,1033],{"class":977},[967,5366,5367,5369,5371,5373,5375],{"class":969,"line":2164},[967,5368,3629],{"class":1003},[967,5370,3679],{"class":1029},[967,5372,1161],{"class":977},[967,5374,1275],{"class":1029},[967,5376,1167],{"class":977},[967,5378,5379,5381,5383,5385,5387,5389],{"class":969,"line":2169},[967,5380,1190],{"class":1029},[967,5382,1193],{"class":977},[967,5384,1821],{"class":1227},[967,5386,1272],{"class":977},[967,5388,1275],{"class":1227},[967,5390,1033],{"class":977},[967,5392,5393,5395,5397,5399,5401,5403],{"class":969,"line":2174},[967,5394,3657],{"class":1227},[967,5396,1272],{"class":977},[967,5398,1275],{"class":1227},[967,5400,1358],{"class":977},[967,5402,3679],{"class":1029},[967,5404,1033],{"class":977},[967,5406,5407,5409],{"class":969,"line":2186},[967,5408,1681],{"class":973},[967,5410,1853],{"class":977},[967,5412,5413],{"class":969,"line":2195},[967,5414,1238],{"class":977},[967,5416,5417],{"class":969,"line":2200},[967,5418,1135],{"emptyLinePlaceholder":1134},[967,5420,5421,5423,5425,5427,5429,5431,5433,5435,5437,5439,5441],{"class":969,"line":2205},[967,5422,1979],{"class":1003},[967,5424,1069],{"class":1068},[967,5426,1839],{"class":1007},[967,5428,1075],{"class":977},[967,5430,1114],{"class":1003},[967,5432,1008],{"class":1007},[967,5434,1065],{"class":1003},[967,5436,1994],{"class":1254},[967,5438,1258],{"class":977},[967,5440,1090],{"class":1003},[967,5442,1011],{"class":977},[967,5444,5445,5447,5449,5451,5453,5455,5457,5459,5461,5463],{"class":969,"line":2224},[967,5446,1831],{"class":973},[967,5448,1310],{"class":977},[967,5450,1293],{"class":1029},[967,5452,2012],{"class":977},[967,5454,1994],{"class":1227},[967,5456,1272],{"class":977},[967,5458,1275],{"class":1227},[967,5460,1258],{"class":977},[967,5462,1850],{"class":973},[967,5464,2025],{"class":977},[967,5466,5467,5469,5471,5473,5475,5477,5479,5481,5483,5485,5487,5489,5491,5493],{"class":969,"line":2255},[967,5468,1307],{"class":973},[967,5470,1310],{"class":977},[967,5472,1313],{"class":1003},[967,5474,1316],{"class":1029},[967,5476,1319],{"class":1068},[967,5478,1322],{"class":1029},[967,5480,1325],{"class":977},[967,5482,1328],{"class":1029},[967,5484,2047],{"class":977},[967,5486,1030],{"class":1029},[967,5488,1325],{"class":977},[967,5490,1338],{"class":1029},[967,5492,1928],{"class":977},[967,5494,1011],{"class":977},[967,5496,5497,5499,5501,5503,5505,5507,5509,5511,5513,5515,5517,5519,5521],{"class":969,"line":2282},[967,5498,2063],{"class":973},[967,5500,1310],{"class":977},[967,5502,1365],{"class":1227},[967,5504,1215],{"class":977},[967,5506,1352],{"class":1029},[967,5508,1355],{"class":977},[967,5510,2076],{"class":977},[967,5512,1994],{"class":1227},[967,5514,1272],{"class":977},[967,5516,1365],{"class":1227},[967,5518,1215],{"class":977},[967,5520,1352],{"class":1029},[967,5522,2089],{"class":977},[967,5524,5525,5527],{"class":969,"line":2287},[967,5526,2095],{"class":973},[967,5528,2025],{"class":977},[967,5530,5531],{"class":969,"line":2296},[967,5532,1961],{"class":977},[967,5534,5535,5537],{"class":969,"line":2301},[967,5536,1681],{"class":973},[967,5538,2110],{"class":977},[967,5540,5541],{"class":969,"line":2306},[967,5542,1238],{"class":977},[967,5544,5545,5547,5549,5551,5553,5555],{"class":969,"line":2340},[967,5546,2121],{"class":1003},[967,5548,1069],{"class":1068},[967,5550,2126],{"class":1007},[967,5552,1182],{"class":977},[967,5554,1090],{"class":1003},[967,5556,1011],{"class":977},[967,5558,5559,5561,5563,5565,5567,5569,5571,5573],{"class":969,"line":2378},[967,5560,1831],{"class":973},[967,5562,1310],{"class":977},[967,5564,1293],{"class":1029},[967,5566,1839],{"class":977},[967,5568,1196],{"class":1068},[967,5570,1258],{"class":977},[967,5572,1850],{"class":973},[967,5574,2025],{"class":977},[967,5576,5577,5579,5581],{"class":969,"line":2404},[967,5578,2157],{"class":973},[967,5580,1850],{"class":973},[967,5582,2110],{"class":977},[967,5584,5585],{"class":969,"line":2436},[967,5586,1238],{"class":977},[967,5588,5589],{"class":969,"line":2451},[967,5590,1135],{"emptyLinePlaceholder":1134},[967,5592,5593,5595,5597,5599],{"class":969,"line":2461},[967,5594,1026],{"class":1003},[967,5596,2179],{"class":1178},[967,5598,1182],{"class":977},[967,5600,1011],{"class":977},[967,5602,5603,5605,5607],{"class":969,"line":2472},[967,5604,1681],{"class":973},[967,5606,1030],{"class":1029},[967,5608,1033],{"class":977},[967,5610,5611],{"class":969,"line":2478},[967,5612,1238],{"class":977},[967,5614,5615],{"class":969,"line":2520},[967,5616,1135],{"emptyLinePlaceholder":1134},[967,5618,5619,5621,5623,5625,5627,5629,5631],{"class":969,"line":2536},[967,5620,1026],{"class":1003},[967,5622,2210],{"class":1178},[967,5624,1075],{"class":977},[967,5626,2215],{"class":1003},[967,5628,1510],{"class":1254},[967,5630,1258],{"class":977},[967,5632,1011],{"class":977},[967,5634,5635,5637,5639,5641,5643,5645,5647,5649,5651,5653,5655,5657,5659,5661],{"class":969,"line":2545},[967,5636,1307],{"class":973},[967,5638,1310],{"class":977},[967,5640,1313],{"class":1003},[967,5642,1316],{"class":1029},[967,5644,1319],{"class":1068},[967,5646,1322],{"class":1029},[967,5648,1325],{"class":977},[967,5650,1328],{"class":1029},[967,5652,1331],{"class":977},[967,5654,1030],{"class":1029},[967,5656,1325],{"class":977},[967,5658,1338],{"class":1029},[967,5660,1928],{"class":977},[967,5662,1011],{"class":977},[967,5664,5665,5667,5669,5671,5673,5675,5677,5679,5681,5683,5685],{"class":969,"line":2550},[967,5666,2063],{"class":973},[967,5668,1310],{"class":977},[967,5670,2262],{"class":1029},[967,5672,1839],{"class":977},[967,5674,1045],{"class":1227},[967,5676,1215],{"class":977},[967,5678,1352],{"class":1029},[967,5680,2273],{"class":977},[967,5682,1850],{"class":973},[967,5684,1338],{"class":1029},[967,5686,1033],{"class":977},[967,5688,5689],{"class":969,"line":2555},[967,5690,1961],{"class":977},[967,5692,5693,5695,5697],{"class":969,"line":2568},[967,5694,1681],{"class":973},[967,5696,1158],{"class":1029},[967,5698,1033],{"class":977},[967,5700,5701],{"class":969,"line":2605},[967,5702,1238],{"class":977},[967,5704,5705],{"class":969,"line":2622},[967,5706,1167],{"class":977},[967,5708,5709,5711,5713,5715,5717,5719,5721,5723,5725,5727,5729,5731,5733,5735,5737],{"class":969,"line":2648},[967,5710,955],{"class":1007},[967,5712,1069],{"class":1068},[967,5714,1109],{"class":1007},[967,5716,1075],{"class":977},[967,5718,1114],{"class":1003},[967,5720,1008],{"class":1007},[967,5722,1065],{"class":1003},[967,5724,2323],{"class":1254},[967,5726,1087],{"class":977},[967,5728,1090],{"class":1003},[967,5730,1008],{"class":1007},[967,5732,1065],{"class":1003},[967,5734,1761],{"class":1254},[967,5736,1258],{"class":977},[967,5738,1011],{"class":977},[967,5740,5741,5743,5745,5747,5749,5751,5753,5755,5757,5759,5761,5763,5765,5767,5769,5771],{"class":969,"line":4156},[967,5742,1039],{"class":1003},[967,5744,1042],{"class":977},[967,5746,2347],{"class":1227},[967,5748,2350],{"class":977},[967,5750,1212],{"class":1003},[967,5752,1215],{"class":977},[967,5754,938],{"class":1227},[967,5756,1272],{"class":977},[967,5758,1275],{"class":1227},[967,5760,1779],{"class":977},[967,5762,1761],{"class":1227},[967,5764,1272],{"class":977},[967,5766,1275],{"class":1227},[967,5768,1779],{"class":977},[967,5770,1298],{"class":1068},[967,5772,2375],{"class":977},[967,5774,5775,5777,5779,5781,5783,5785,5787,5789,5791,5793],{"class":969,"line":4165},[967,5776,2381],{"class":1007},[967,5778,1059],{"class":977},[967,5780,2386],{"class":1178},[967,5782,1075],{"class":977},[967,5784,2391],{"class":1227},[967,5786,1087],{"class":977},[967,5788,2323],{"class":1227},[967,5790,1272],{"class":977},[967,5792,1365],{"class":1227},[967,5794,1097],{"class":977},[967,5796,5797,5799,5801,5803,5805,5807,5809,5811,5813,5815,5817,5819,5821,5823],{"class":969,"line":4170},[967,5798,2381],{"class":1007},[967,5800,1059],{"class":977},[967,5802,2386],{"class":1178},[967,5804,1075],{"class":977},[967,5806,2415],{"class":1227},[967,5808,1109],{"class":977},[967,5810,2323],{"class":1227},[967,5812,1272],{"class":977},[967,5814,1275],{"class":1227},[967,5816,1087],{"class":977},[967,5818,1761],{"class":1227},[967,5820,1272],{"class":977},[967,5822,1365],{"class":1227},[967,5824,1097],{"class":977},[967,5826,5827,5829,5831,5833,5835],{"class":969,"line":4211},[967,5828,2439],{"class":1227},[967,5830,2442],{"class":1178},[967,5832,1075],{"class":977},[967,5834,2391],{"class":1227},[967,5836,1097],{"class":977},[967,5838,5839,5841,5843],{"class":969,"line":4226},[967,5840,2454],{"class":977},[967,5842,2347],{"class":1227},[967,5844,1033],{"class":977},[967,5846,5847,5849,5851],{"class":969,"line":4235},[967,5848,2464],{"class":973},[967,5850,2467],{"class":1227},[967,5852,1033],{"class":977},[967,5854,5855],{"class":969,"line":4240},[967,5856,2475],{"class":977},[967,5858,5859,5861,5863,5865,5867,5869,5871,5873,5875,5877,5879,5881,5883,5885,5887,5889,5891,5893,5895],{"class":969,"line":4245},[967,5860,1078],{"class":1007},[967,5862,1059],{"class":977},[967,5864,1062],{"class":1007},[967,5866,1065],{"class":1003},[967,5868,1069],{"class":1068},[967,5870,1072],{"class":1007},[967,5872,1075],{"class":977},[967,5874,1078],{"class":1007},[967,5876,1059],{"class":977},[967,5878,1062],{"class":1007},[967,5880,1065],{"class":1003},[967,5882,2503],{"class":1254},[967,5884,1087],{"class":977},[967,5886,1090],{"class":1003},[967,5888,1008],{"class":1007},[967,5890,1065],{"class":1003},[967,5892,1761],{"class":1254},[967,5894,1258],{"class":977},[967,5896,1011],{"class":977},[967,5898,5899,5901,5903,5905,5907,5909],{"class":969,"line":4256},[967,5900,2523],{"class":1227},[967,5902,1072],{"class":977},[967,5904,1761],{"class":1227},[967,5906,1272],{"class":977},[967,5908,1365],{"class":1227},[967,5910,1033],{"class":977},[967,5912,5913,5915,5917],{"class":969,"line":4289},[967,5914,2464],{"class":973},[967,5916,2503],{"class":1227},[967,5918,1033],{"class":977},[967,5920,5921],{"class":969,"line":4304},[967,5922,2475],{"class":977},[967,5924,5925],{"class":969,"line":4327},[967,5926,1135],{"emptyLinePlaceholder":1134},[967,5928,5930,5932,5934,5936],{"class":969,"line":5929},114,[967,5931,2558],{"class":1003},[967,5933,2561],{"class":1178},[967,5935,1182],{"class":977},[967,5937,1011],{"class":977},[967,5939,5941,5943,5945,5947,5949,5951,5953,5955,5957,5959,5961,5963,5965,5967,5969],{"class":969,"line":5940},115,[967,5942,2439],{"class":1227},[967,5944,938],{"class":1178},[967,5946,1075],{"class":977},[967,5948,2577],{"class":977},[967,5950,2580],{"class":981},[967,5952,2577],{"class":977},[967,5954,2585],{"class":977},[967,5956,1761],{"class":1178},[967,5958,1075],{"class":977},[967,5960,2577],{"class":977},[967,5962,2594],{"class":981},[967,5964,2577],{"class":977},[967,5966,2585],{"class":977},[967,5968,1510],{"class":1227},[967,5970,1033],{"class":977},[967,5972,5974,5976,5978,5980,5982,5984],{"class":969,"line":5973},116,[967,5975,2608],{"class":1227},[967,5977,1193],{"class":977},[967,5979,2613],{"class":1227},[967,5981,1109],{"class":977},[967,5983,1761],{"class":1227},[967,5985,1033],{"class":977},[967,5987,5989,5991,5993,5995,5997,5999,6001,6003,6005,6007],{"class":969,"line":5988},117,[967,5990,2381],{"class":1007},[967,5992,1059],{"class":977},[967,5994,2629],{"class":1227},[967,5996,1072],{"class":977},[967,5998,2634],{"class":1227},[967,6000,1072],{"class":977},[967,6002,1056],{"class":1007},[967,6004,1059],{"class":977},[967,6006,2643],{"class":1227},[967,6008,1033],{"class":977},[967,6010,6012],{"class":969,"line":6011},118,[967,6013,2475],{"class":977},[943,6015,6016],{"id":6016},"临时对象的生存期",[918,6018,6019,6020,6023],{},"本节的最后我来谈一下纯右值（准确地讲，其临时量实质化后的临时对象）何时析构。生存期这个概念我没有明确提及过，但是在",[938,6021,6022],{"href":363},"第四章","里提到了对象的存储期，它们概念比较相似：总之就是讨论一个对象何时获取内存，何时初始化，何时析构并释放内存。",[918,6025,6026],{},"对于临时对象来说，它们宏观上是自动存储期的，所以初始化仍然在执行临时量实质化时发生。关键是析构发生的时刻：析构总是发生在这个纯右值所处的全表达式（Full expression）运算完成的位置。全表达式这个术语在标准中仅出现一次，定义略微复杂，但简单地理解成表达式语句或表达式所在语句执行完成的时刻点就可以。比如：",[958,6028,6030],{"className":960,"code":6029,"language":962,"meta":963,"style":963},"String a, b, c;\n(c = a + b), (a = b + c); \u002F\u002F 全表达式完成之前，没有临时对象会析构\n\u002F\u002F 执行到此处时，a + b 实质化出来的对象被析构。同理 b + c 也在此时析构\n",[953,6031,6032,6047,6083],{"__ignoreMap":963},[967,6033,6034,6037,6039,6041,6043,6045],{"class":969,"line":970},[967,6035,6036],{"class":1227},"String a",[967,6038,1087],{"class":977},[967,6040,1761],{"class":1227},[967,6042,1087],{"class":977},[967,6044,1510],{"class":1227},[967,6046,1033],{"class":977},[967,6048,6049,6051,6053,6055,6057,6059,6061,6063,6065,6068,6070,6073,6075,6077,6080],{"class":969,"line":988},[967,6050,1075],{"class":977},[967,6052,2262],{"class":1227},[967,6054,1193],{"class":977},[967,6056,2613],{"class":1227},[967,6058,1109],{"class":977},[967,6060,1761],{"class":1227},[967,6062,2585],{"class":977},[967,6064,1310],{"class":977},[967,6066,6067],{"class":1227},"a ",[967,6069,1193],{"class":977},[967,6071,6072],{"class":1227}," b ",[967,6074,1109],{"class":977},[967,6076,1510],{"class":1227},[967,6078,6079],{"class":977},");",[967,6081,6082],{"class":3623}," \u002F\u002F 全表达式完成之前，没有临时对象会析构\n",[967,6084,6085],{"class":969,"line":1000},[967,6086,6087],{"class":3623},"\u002F\u002F 执行到此处时，a + b 实质化出来的对象被析构。同理 b + c 也在此时析构\n",[918,6089,6090],{},"这个规则不算漂亮，但在大部分的情形下是有用的，保证临时对象不会在使用完成前析构。但右值引用的存在让问题变得复杂：",[958,6092,6094],{"className":960,"code":6093,"language":962,"meta":963,"style":963},"String a, b;\nString&& r{a + b}; \u002F\u002F 全表达式在此结束，a + b 析构了？\nr; \u002F\u002F 绑定到 a + b 的引用不合法了？\n",[953,6095,6096,6106,6129],{"__ignoreMap":963},[967,6097,6098,6100,6102,6104],{"class":969,"line":970},[967,6099,6036],{"class":1227},[967,6101,1087],{"class":977},[967,6103,1761],{"class":1227},[967,6105,1033],{"class":977},[967,6107,6108,6110,6112,6115,6117,6119,6121,6123,6126],{"class":969,"line":988},[967,6109,955],{"class":1227},[967,6111,3612],{"class":977},[967,6113,6114],{"class":1227}," r",[967,6116,1161],{"class":977},[967,6118,6067],{"class":1029},[967,6120,1109],{"class":977},[967,6122,1761],{"class":1029},[967,6124,6125],{"class":977},"};",[967,6127,6128],{"class":3623}," \u002F\u002F 全表达式在此结束，a + b 析构了？\n",[967,6130,6131,6134,6136],{"class":969,"line":1000},[967,6132,6133],{"class":1227},"r",[967,6135,1325],{"class":977},[967,6137,6138],{"class":3623}," \u002F\u002F 绑定到 a + b 的引用不合法了？\n",[918,6140,6141,6142,6144],{},"如果右值引用的语境下仍然坚守这条规则就坏了，这里的 ",[953,6143,6133],{}," 立即就成为了悬垂引用。因此 C++ 又补充了这样的规则：任何绑定到纯右值的引用，会延长该纯右值的生存期（即延长其实质化后的对象存储期）。延长多久呢？到该引用语法上的生存期结束，简单来看就是该引用退出作用域的时刻。下面的例子具体地演示了这条额外规则：",[958,6146,6148],{"className":960,"code":6147,"language":962,"meta":963,"style":963},"struct S {};\nS f() {\n    return {};\n}\nint main() {\n    S* p{nullptr};\n    {\n        S&& r = f(); \u002F\u002F 全表达式结束，f() 原本的析构点\n        p = &r;\n    } \u002F\u002F 但由于绑定到引用 r，f() 生存期延长到此处结束，S::~S 在此处被调用\n    \u002F\u002F 此处 p 是悬垂指针，访问 *p 是未定义行为\n}\n",[953,6149,6150,6161,6173,6179,6183,6193,6206,6211,6231,6245,6253,6258],{"__ignoreMap":963},[967,6151,6152,6155,6158],{"class":969,"line":970},[967,6153,6154],{"class":1003},"struct",[967,6156,6157],{"class":1007}," S",[967,6159,6160],{"class":977}," {};\n",[967,6162,6163,6166,6169,6171],{"class":969,"line":988},[967,6164,6165],{"class":1007},"S",[967,6167,6168],{"class":1178}," f",[967,6170,1182],{"class":977},[967,6172,1011],{"class":977},[967,6174,6175,6177],{"class":969,"line":1000},[967,6176,2464],{"class":973},[967,6178,6160],{"class":977},[967,6180,6181],{"class":969,"line":1014},[967,6182,2475],{"class":977},[967,6184,6185,6187,6189,6191],{"class":969,"line":1023},[967,6186,2558],{"class":1003},[967,6188,2561],{"class":1178},[967,6190,1182],{"class":977},[967,6192,1011],{"class":977},[967,6194,6195,6198,6200,6203],{"class":969,"line":1036},[967,6196,6197],{"class":1227},"    S",[967,6199,1042],{"class":977},[967,6201,6202],{"class":1227}," p",[967,6204,6205],{"class":977},"{nullptr};\n",[967,6207,6208],{"class":969,"line":1050},[967,6209,6210],{"class":977},"    {\n",[967,6212,6213,6216,6218,6221,6223,6225,6228],{"class":969,"line":1100},[967,6214,6215],{"class":1029},"        S",[967,6217,3612],{"class":977},[967,6219,6220],{"class":1029}," r ",[967,6222,1193],{"class":977},[967,6224,6168],{"class":1178},[967,6226,6227],{"class":977},"();",[967,6229,6230],{"class":3623}," \u002F\u002F 全表达式结束，f() 原本的析构点\n",[967,6232,6233,6236,6238,6241,6243],{"class":969,"line":1131},[967,6234,6235],{"class":1029},"        p ",[967,6237,1193],{"class":977},[967,6239,6240],{"class":977}," &",[967,6242,6133],{"class":1029},[967,6244,1033],{"class":977},[967,6246,6247,6250],{"class":969,"line":1138},[967,6248,6249],{"class":977},"    }",[967,6251,6252],{"class":3623}," \u002F\u002F 但由于绑定到引用 r，f() 生存期延长到此处结束，S::~S 在此处被调用\n",[967,6254,6255],{"class":969,"line":1146},[967,6256,6257],{"class":3623},"    \u002F\u002F 此处 p 是悬垂指针，访问 *p 是未定义行为\n",[967,6259,6260],{"class":969,"line":1170},[967,6261,2475],{"class":977},[6263,6264,6265],"blockquote",{},[918,6266,6267,6268,6271,6272,6275],{},"此规则也包含 const T& 绑定到纯右值的情形，比如 ",[953,6269,6270],{},"const int& x = 42;"," 也会延长该临时对象 ",[953,6273,6274],{},"42"," 的生存期。如果引用从（非实质化生成的）亡值或左值初始化，除了某些特定形式的表达式，大多不会改变其原有的生存期。",[918,6277,6278,6279,6283],{},"这条规则还有例外（就你妈邪门，现在已经好几条例外规则了），函数返回右值引用不会延长生存期。此时的语义和返回左值引用是一致的，也就是遵循我们之前的",[938,6280,6282],{"href":6281},"\u002Fch04\u002Flist\u002Fsafety#%E6%82%AC%E5%9E%82%E5%BC%95%E7%94%A8","悬垂引用","规则。",[958,6285,6287],{"className":960,"code":6286,"language":962,"meta":963,"style":963},"struct S {};\nS&& f() {\n    return {}; \u002F\u002F {} 的生存期不会被延长到函数调用结束。这就是悬垂引用\n}\n",[953,6288,6289,6297,6309,6319],{"__ignoreMap":963},[967,6290,6291,6293,6295],{"class":969,"line":970},[967,6292,6154],{"class":1003},[967,6294,6157],{"class":1007},[967,6296,6160],{"class":977},[967,6298,6299,6301,6303,6305,6307],{"class":969,"line":988},[967,6300,6165],{"class":1007},[967,6302,3612],{"class":1003},[967,6304,6168],{"class":1178},[967,6306,1182],{"class":977},[967,6308,1011],{"class":977},[967,6310,6311,6313,6316],{"class":969,"line":1000},[967,6312,2464],{"class":973},[967,6314,6315],{"class":977}," {};",[967,6317,6318],{"class":3623}," \u002F\u002F {} 的生存期不会被延长到函数调用结束。这就是悬垂引用\n",[967,6320,6321],{"class":969,"line":1014},[967,6322,2475],{"class":977},[918,6324,6325,6326,6329,6330,6333,6334,6336,6337,6339],{},"这个例子中，",[953,6327,6328],{},"{}"," 是 ",[953,6331,6332],{},"f"," 的局部右值，它作为自动存储期就应该在 ",[953,6335,6332],{}," 函数的存在期间被构造和析构。这是原则性的东西，因此返回右值引用虽然也是绑定到 ",[953,6338,6328],{}," 上，但生存期不会被延长。实际的经验表明：返回右值引用类型九成是错误，书写前一定要三思。",[918,6341,6342,6343,4351,6346,6349],{},"总之，右值引用最大的作用是让 ",[953,6344,6345],{},"T& T::operator=(T&&)",[953,6347,6348],{},"T::T(T&&)"," 这两个特殊成员函数能够从右值中“窃取”即将消失的资源。至于其它的，都是语法引入的额外噪声罢了，了解但不要放在心上（不然脑子会被搞乱的）。",[6351,6352,6353],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":963,"searchDepth":970,"depth":988,"links":6355},[6356,6357,6358],{"id":945,"depth":988,"text":945},{"id":2733,"depth":988,"text":2733},{"id":6016,"depth":988,"text":6016},"md",null,{},{"icon":746},{"title":756,"description":756},"itbYc7rwAC7CcUDqjkEtmbRJaC95NX6xwl8e-rhZivg",[6366,6367],{"title":752,"path":753,"stem":754,"description":752,"icon":746,"children":-1},{"title":760,"path":761,"stem":762,"description":6368,"icon":746,"children":-1},"std::sharedptr 是具有共享所有权的智能指针。",1784618138793]