风格的选择
【警告】我目前从事嵌入式开发,文章中的观点受到我浅薄开发经验的强烈影响,各位请抱着批判的观点看待。另外,此文的以项目实际开发为衡量标准,请不要以仅在理论中存在的理想标准来评价本文的观点。
【大师语录】
Herb Sutter(1998):...在我们公司的开发中,大量使用的是封装,包容,访问控制,ADT,不大用继承和多态。我们经常使用STL,template...至于异常,我通常都用new (nothrow) Classname!;-) ...
Douglas Lea(1995): 也许对C++最好的看法是把它看成一系列较小、较简单的语言。包括:一种接口定义语言,一种数据抽象语言,一种静态类型的面向对象语言,一种过程化语言(也就是C)。它的每个方面都有一些缺陷...,让这些模型和特性彼此交互协作会导致严重的复杂性。通常,对付这种复杂性的最佳手段是始终坚持使用少量的几个设计和编程惯用技术(就是今天所谓的模式——译者),这些技术又组合成为更加通用和有效的技术。(设计开发中的)一个首要目标是尽可能远离这个语言中的阴暗角落。
【正文】
Bjarne Stroustrup说,C++有四个部分:better C,ADT,OO,和GP。虽然现在也有一些新的风格被证明可以在C++中运用,比如functional, generative,meta programming等等,但是在实际工程中,主流的风格就是这四种。我们通常使用OO风格进行软件开发,但是,严格来说,目前C++中的所谓OO风格是一