读书笔记:Effective C++ 2.0 版,条款22(传引用)、条款23(返回引用没有返回对象安全)

条款22: 尽量用"传引用"而不用"传值"

原因是减少不必要的拷贝构造函数、析构函数。

个人觉得,一般情况下,小于等于cpu字长的传值,其它传引用。

范式如下:

c 复制代码
const student& returnstudent(const student& s){ return s; }

引用几乎都是通过指针来实现的,所以通过引用传递对象实际上是传递指针。

如果是一个很小的对象------例如int------传值实际上会比传引用更高效。

条款23: 必须返回一个对象时不要试图返回一个引用

据说爱因斯坦曾提出过这样的建议:尽可能地让事情简单,但不要过于简单。

在c++语言中相似的说法应该是:尽可能地使程序高效,但不要过于高效。

原因是过于高效的方案,往往无法保证安全。

安全、高效有时会产生冲突,这时,安全优先,程序正确优先。

相关推荐
xxwxx__2 小时前
C++ STL set 与 map 全套详解:关联式容器、红黑树底层、代码坑点、刷题实战
数据结构·c++
j7~4 小时前
【Linux网络加餐】(篇六)网络版计算器(上):模板方法模式、序列化与 JSON
linux·c++·json·序列化·反序列化·网络版计算机
weixin_307779134 小时前
C++代码实现MATLAB中的ode45函数功能
开发语言·c++·算法·matlab
张小姐的猫4 小时前
【AI大模型接入SDK】 —— 数据管理 & 与Session模块进行联动
数据结构·数据库·c++·人工智能·python·chatgpt
東隅已逝,桑榆非晚5 小时前
vector(模拟实现)
c++·笔记·学习
蒸蒸yyyyzwd5 小时前
cpp 选手备战秋招学习笔记 day36
c++
用户69586106727116 小时前
从源码到加载器:__attribute__((constructor)) / __attribute__((destructor))的跨平台实现原理详解
c++
余额瞒着我当琳7 小时前
C++多态深入解析:多态概念,多态实现条件,虚函数表与内存分布,常见问题及注意事项
c++·算法
ocean21037 小时前
2025-2026年C++专题大厂面试高频问题
开发语言·c++·面试
程序猿编码7 小时前
扔掉 Python!纯 C++ 本地跑扩散 TTS,GGML 加持,支持 RK3588 NPU 加速
c++·计算机视觉·大模型·transformer·rk3588·推理·ggml