读高质量C++编程指南
来源:互联网 发布:linux 怎么读 编辑:程序博客网 时间:2024/06/08 14:29
1.是否应将 void Func(int x) 改写为 void Func(const int &x),以便提
高效率?完全没有必要,因为内部数据类型的参数不存在构造、析构的过程,而复制也
非常快, “值传递”和“引用传递”的效率几乎相当。
2. 如果函数返回值采用“值传递方式” ,由于函数会把返回值复制到外部临时的存储单
元中,加 const修饰没有任何价值。
例如不要把函数 int GetInt(void) 写成 const int GetInt(void)。
同理不要把函数 A GetA(void) 写成 const A GetA(void),其中 A 为用户自定义的
数据类型。
如果返回值不是内部数据类型,将函数 A GetA(void) 改写为 const A & GetA(void)
的确能提高效率。但此时千万千万要小心,一定要搞清楚函数究竟是想返回一个对象的
“拷贝”还是仅返回“别名”就可以了,否则程序会出错。见 6.2节“返回值的规则”
函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数
中,目的是为了实现链式表达。
例如
class A
{…
A & operate = (const A &other); // 赋值函数
};
A a, b, c; // a, b, c 为 A 的对象
…
a = b = c; // 正常的链式赋值 化境编程界推荐图书系列 - 高质量C++/C 编程指南,v 1.0
2001 Page 84 of 101
(a = b) = c; // 不正常的链式赋值,但合法
如果将赋值函数的返回值加 const 修饰,那么该返回值的内容不允许被改动。上例
中,语句 a = b = c 仍然正确,但是语句 (a = b) = c 则是非法的。
- 读《高质量C++/C编程指南》
- 高质量C编程指南
- 高质量C++/C编程指南(参考文献)
- 高质量C++/C编程指南
- 高质量C++/C编程指南
- 高质量C++/C 编程指南
- 高质量C++/C编程指南
- 高质量C++/C编程指南
- 高质量C++/C编程指南
- 高质量C++/C编程指南 -- 前言
- 高质量C++/C编程指南
- 高质量C++/C编程指南
- 高质量C++/C编程指南 -- 前言
- 高质量C++/C编程指南
- 高质量C++/C编程指南
- 高质量C++/C编程指南[1]
- 高质量C++/C编程指南[2]
- 高质量C++/C编程指南[3]
- The Android boot process
- JavaScript—代码优化(一).
- 新的开始
- 为什么C++编译器不能支持对模板的分离式编译_刘未鹏
- VC下遍历文件夹查找文件
- 读高质量C++编程指南
- The System Server in Android
- Servlet生命周期
- The init process and init.rc
- 利用strace诊断程序错误
- My first research experience...and tips
- NTKO Word在线编辑器
- NSString 转换 NSdate
- A closer look at the Android project build system part I