C++编程规范之函数与操作符(读书笔记)
2007-05-02 14:43
162 查看
第25条 正确地选择通过值、(智能)指针或者引用传递参数
摘要:
正确选择参数,分清输入参数、输出参数和输入/输出参数,分清值参数和引用参数。正确的传递参数。
选择参数的准则:
对只输入参数
始终用const限制所有指向只输入参数的指针和引用
优先通过值来取得原始类型和复制开销比较低的值对象的输入。
优先按const的引用取得其他用户定义类型的输入
如果函数需要其参数的副本,则可以考虑通过值传递代替通过引用传递
对输出参数或者输入/输出参数:
如果参数是可选的或者函数需要保存这个指针的副本或者操控参数的所有权,那么应该优先通过(智能)指针传递。
如果参数是必须的,而且函数无需保存指向参数的指针或者无需操控参数的所有权,则应该优先通过引用传递
第26条 保持重载操作符的自然语义
摘要:只有在有充分理由时才重载操作符,而且应该保持其自然语义。
第27条 优先使用算术操作符和赋值操作符的标准形式
摘要:如果要定义a+b,也应该定义a+=b,在定义二元算术操作符时,也应该提供操作符的赋值形式,并且应该尽量减少重复,提高效率。
第28条 优先使用++和- -的标准形式。优先调用前缀形式
第29条 考虑重载以避免隐含类型转换
摘要:隐式类型转换提供了语法上的便利,但是如果创建临时对象的工作并不必要而且适于优化,那么可以提供签名与常见参数类型精确匹配的重载函数,而且不会导致转换。
第30条 避免重载&&、||或 ,(逗号)
第31条 不要编写依赖于函数参数求值顺序的代码
摘要:函数参数的求职顺序是不确定的,因此不要依赖具体的顺序。
摘要:
正确选择参数,分清输入参数、输出参数和输入/输出参数,分清值参数和引用参数。正确的传递参数。
选择参数的准则:
对只输入参数
始终用const限制所有指向只输入参数的指针和引用
优先通过值来取得原始类型和复制开销比较低的值对象的输入。
优先按const的引用取得其他用户定义类型的输入
如果函数需要其参数的副本,则可以考虑通过值传递代替通过引用传递
对输出参数或者输入/输出参数:
如果参数是可选的或者函数需要保存这个指针的副本或者操控参数的所有权,那么应该优先通过(智能)指针传递。
如果参数是必须的,而且函数无需保存指向参数的指针或者无需操控参数的所有权,则应该优先通过引用传递
第26条 保持重载操作符的自然语义
摘要:只有在有充分理由时才重载操作符,而且应该保持其自然语义。
第27条 优先使用算术操作符和赋值操作符的标准形式
摘要:如果要定义a+b,也应该定义a+=b,在定义二元算术操作符时,也应该提供操作符的赋值形式,并且应该尽量减少重复,提高效率。
第28条 优先使用++和- -的标准形式。优先调用前缀形式
第29条 考虑重载以避免隐含类型转换
摘要:隐式类型转换提供了语法上的便利,但是如果创建临时对象的工作并不必要而且适于优化,那么可以提供签名与常见参数类型精确匹配的重载函数,而且不会导致转换。
第30条 避免重载&&、||或 ,(逗号)
第31条 不要编写依赖于函数参数求值顺序的代码
摘要:函数参数的求职顺序是不确定的,因此不要依赖具体的顺序。
相关文章推荐
- 读书笔记--调用操作符和函数对象
- C++编程规范(四)函数和操作符
- C++编程规范之函数与操作符
- C++ 编程规范101读书笔记(4)函数与操作符
- C++编程规范 函数与操作符
- Inside The C++ Object Model 读书笔记(三)——继承、数据和函数的存储
- Hive 内建操作符与函数开发——深入浅出学Hive
- C++ Primer 读书笔记 Chapter 7 函数
- PostgreSQL学习手册(五) 函数和操作符
- 《C++捷径教程》读书笔记--Chapter 7--函数,第一部分:基础知识(第一部分)
- 《C++编程规范 101条规则、准则与最佳实践》 人邮 -- 读书笔记
- 【javascript基础】函数前面的一元操作符
- ECMAScript6(ES6)标准之函数扩展特性箭头函数、Rest参数及展开操作符
- 调用操作符的重载与函数对象
- operator--Python内部操作符对应的函数
- 读书笔记:自定义函数实现字符串处理函数----strlen、strcmp、strcat、strcpy
- C++命名空间中操作符函数的动态链接问题
- 关于函数对象和调用操作符
- QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用
- 普林斯顿微积分读本——第一章 函数、图像和直线(读书笔记)