那些C++编程中应当尽早摒弃的陋习

习惯更改(养成良好的编程习惯)

1.包含头文件的方式,从C语言.h的方式改为<头文件名>的方式

2.尽量使用迭代器代替下标操作

3.建议:尽量避免使用指针和数组 ,尽可能使用vector和迭代器

4.采用 string 类型取代 C 风格字符串(使用标准库类型 string,除了增强安全性外,效率也提高了,因此应该尽量避免使用 C 风格字符串)

5.尽量“将符号 * 紧贴着指针变量名放置”,虽然*紧贴类型名放置也是合法的

5.用指针操作数组时应首先选用类似于迭代器的那种用法

6.const使用时,如果等价,尽量将const放在类型后,以避免类似于typedef使用中的错误

7.一般而言,应该优先使用标准库抽象类而少用语言内置的低级数组和指针。尤其是应该使用 string 类型取代 C 风格以空字符结束的字符数组。现代 C++ 程序不应使用 C 风格字符串。

2013-04-15补充

8.相对于“整型数据的低级直接位操作”而言,“标准库提供的 bitset 操作更直接、更容易阅读和书写、正确使用的可能性更高。而且,bitset 对象的大小不受 unsigned 数的位数限制。”,所以,优先选用bitset

9.类似于++,--这种自增操作符,只有在必要时才使用后置操作符,尽量使用前置自增操作符的形式(组合使用接引用和自增操作符时,通常使用后自增操作符)

10、合适的地方,例如:想在函数调用是实现对实参的访问,“从 C 语言背景转到 C++ 的程序员习惯通过传递指针来实现对实参的访问。在 C++ 中,使用引用形参则更安全和更
自然。 ”

11.如果使用引用形参的唯一目的是避免复制实参,则应将形参定义为 const 引用。

12.应该将不需要修改的引用形参定义为const 引用。普通的非 const 引用形参在使用时不太灵活。这样的形参既不能用 const 对象初始化,也不能用字面值或产生右值的表达式实参初始化。

13.通常,将数组形参直接定义为指针要比使用数组语法定义更好。这样就明确地表示,函数操纵的是指向数组元素的指针,而不是数组本身。由于忽略了数组长度,形参定义中如果包含了数组长度则特别容易引起误解。

14.在创建 fstream 对象时,如果调用 open 或使用文件名作初始化式,需要传递的实参应为 C 风格字符串,而不是标准库 strings 对象。程序常常从标准输入获得文件名。通常,
比较好的方法是将文件名读入 string 对象,而不是 C 风格字符数组。假设要使用的文件名保存在 string 对象中,则可调用 c_str 成员(第 4.3.2 节)获取 C 风格字符串。

15.计算数组元素个数时应定义为size_t,放弃使用int

 

2013-04-14

备注:以上这些条目(除非特别指出)都是源自《C++ Primer》,过些时日将逐条补充整理。另外,评论中有网友贡献了几条,查阅资料验证后也将融汇到以上条目。做成图表格式,另外将这些些条目避免的问题加进去,如果有的话

另外,在C++ Primer中搜索“圆括号”三个字,找到使用圆括号调用默认构造函数等初始化成员等的规则

原文链接: https://www.cnblogs.com/tingshuixuan2012/archive/2013/03/21/2972892.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    那些C++编程中应当尽早摒弃的陋习

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/81491

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午8:05
下一篇 2023年2月9日 下午8:05

相关推荐