我应该阅读什么来改进我的C ++风格

时间:2011-02-04 23:15:16

标签: c++ coding-style

我在C / C ++上已经开发了很长时间(主要是C,这使得风格更差)。所以,我知道如何使用它。但是,我经常坚持做以下的风格决定: - 我应该在这里返回错误代码,抛出异常,通过参数返回错误 - 我应该在构造函数中拥有所有这些东西,还是应该为此创建单独的init函数。 等等。

任何解决方案都可行。然而,他们每个人都有缺点和优点,我知道,最重要的是我不知道。

阅读有关整体C ++开发风格,编码实践等的内容将会非常愉快。你推荐什么?

5 个答案:

答案 0 :(得分:3)

我被很多人推荐过,我有一份副本。 有效的C ++:55种改进程序和设计的具体方法(第3版) http://www.amazon.com/exec/obidos/ASIN/0321334876/christopherheng

答案 1 :(得分:3)

以下列出了关于C ++的优秀书籍:

The Definitive C++ Book Guide and List

根据您的等级阅读其中几个。这肯定会改善你的编码风格!

我个人建议你阅读:

  • Scott Meyers的有效C ++ 系列 C ++
  • Herb Sutter提供的特殊C ++ 系列

Exceptional C ++深入讨论了异常安全的代码。读完本书后,我学习了异常安全效果如何设计类和接口。强烈推荐!

答案 2 :(得分:2)

一本书特别跳出来:C ++编码标准。这本书确实推荐了一些稍微有问题/无用的想法(比如成员的postfix _),但大多数都是非常可靠的。

下一个重要的风格是Sutter的“Exceptional”一书。关于它们的好处是它们涵盖了C ++相当......“不同”的重要领域。它介绍了如何保护代码免受异常的影响,并详细说明了异常对编码实践的影响。

迈尔斯的书也很好,但有点过时了。红皮书更重要恕我直言。

另一本经常被忽视的日期书是通用编程和STL。它几乎可能是预先标准的IS,但它讨论了STL的方法和原因,这对于任何C ++开发人员来说都非常重要。当我向他们展示一些标签调度代码时,总是让我感到惊讶。

答案 3 :(得分:1)

这是一本较旧的书,但我是微软的'Code Complete'的忠实粉丝。它帮助我思考了一些你所描述的设计选择。他们提倡设计有助于自我调试的代码的策略。

一个非常基本的例子是if语句中的变量测试

if(nCheck = 1) {
    // will always do this because nCheck was assigned 0
}

如果你养成了写下if语句的习惯,如下所示

if(1 = nCheck) {
    // Now the compiler will catch the assignment as an error
}

您的代码应该通过捕获大多数简单的语法错误来帮助您。这只是冰山一角。这本书有许多这样的例子,微软多年来一直使用这些聪明的实践。

答案 4 :(得分:0)

为了更好地理解C ++和风格,我建议

  1. Meyers的有效C ++系列
  2. 来自Cline的C ++常见问题解答(书)
  3. 由于采用小药丸格式,两者都是“易读”。