⚠️ 让常量对象也调得动

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)main 里那个对象是 const 的。

开始练习 →

🔴 每建一个就记一笔

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)built_ 是**所有对象共用的一份**,构造时给它加一。

开始练习 →

🔴 一个大对象传值给函数,代价是什么

把一个装了很多东西的对象**按值**传给函数,代价是【0】。

开始练习 →

⚠️ 这个参数写法什么意思

参数写成 const std::string &s,表示【0】。

开始练习 →

什么时候反而该传值

下面几种参数里,**传值更合适**的是【0】。

开始练习 →

🔴 把拷贝次数数出来

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的拷贝计数**只数标准强制的那几种**(传值给函数、push_back 一个左值),**不数返回值和临时对象**——那些各编译器会省略得不一样。所以这些数

开始练习 →

⚠️ 一个只能看,一个能动

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)一个只读的参数,一个可写的参数: #include <iostream> #include <string> /* const& 收

开始练习 →

🔴 两个参数写反了,换回来

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的拷贝计数**只数标准强制的那几种**(传值给函数、push_back 一个左值),**不数返回值和临时对象**——那些各编译器会省略得不一样。所以这些数

开始练习 →

⚠️ 让这次调用一份都别拷

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的拷贝计数**只数标准强制的那几种**(传值给函数、push_back 一个左值),**不数返回值和临时对象**——那些各编译器会省略得不一样。所以这些数

开始练习 →

🔴 少了 const,整条链都断了

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)main 里那个对象是 const 的,report 收的也是 const 引用。

开始练习 →