c++ - 改进代码的指南

标签 c++ coding-style

<分区>

您遵循哪些准则来提高代码的总体质量?很多人都有关于如何编写 C++ 代码的规则,这些规则(据说)使出错变得更难。我见过有人坚持每个 if 语句后跟一个大括号 block ({...})。

我对其他人遵循的准则及其背后的原因很感兴趣。我也对您认为是垃圾但普遍持有的准则感兴趣。谁能推荐几个?

为了让球滚动起来,我会提到一些开始:

  • 始终在每个 if/else 语句(如上所述)之后使用大括号。这背后的基本原理是,判断单个语句实际上是一个语句还是扩展为多个语句的预处理器宏并不总是那么容易,因此这段代码会中断:
    // top of file:
    #define statement doSomething(); doSomethingElse

    // in implementation:
    if (somecondition)
        doSomething();

但如果您使用大括号,那么它将按预期工作。

  • 仅将预处理器宏用于条件编译。预处理器宏可能会导致各种麻烦,因为它们不允许 C++ 范围规则。由于头文件中具有通用名称的预处理器宏,我已经搁浅了很多次。如果您不小心,可能会造成各种破坏!

现在轮到你了。

最佳答案

一些我个人最喜欢的:

努力写出const correct的代码.您将寻求编译器的帮助,以帮助清除易于修复但有时令人痛苦的错误。您的代码还将讲述您在编写代码时的想法——在您离开后对新手或维护者很有值(value)。

退出内存管理业务。学习使用智能指针:std::auto_ptrstd::tr1::shared_ptr(或boost::shared_ptr)和 boost::scoped_ptr。了解它们之间的区别以及何时使用它们。

您可能会使用标准模板库。阅读 Josuttis book .不要只读了前几章关于容器的内容就认为自己了解 STL。推进好东西:算法和函数对象。

关于c++ - 改进代码的指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60673/

相关文章:

c++ - 处理 float 不准确

c++ - Ubuntu 14.04更新gcc 5.1.0报错

javascript - 使用单行函数或重复代码

c++ - 您是否将信息添加到每个 .hpp/.cpp 文件的顶部?

c++ - 如何更改 QTabWidget 选项卡中文本的颜色

c++ - 在 Codelite IDE 中使用 box2d

html - 幻灯片放映的样式问题

java - 关于正确关闭/提交数据库事务和执行查询的问题

java - JSP找不到样式表

c++ - 用unique_pointers填充 vector