1 2 3 4 5 6 7 下一页 1 从过程到对象——类概念的引入 真实世界是由“对象”组成的,无论是动物、植物、工厂还是机器等,都是根据它们的特征,细分出来的对象类别。尽管在软件设计时,更多时候我们面对的是经过高度抽象化的模型,但最终需要解决的还是真实世界中的问题。因此,如果能够在软件设计中按照对象来进行建模,将更加契合真实世界的情况,有利于解决高度复杂的实际问题。典型的过程化程序设计语言,如C语言,其程序设计更倾向于面向过程,以函数为基本单位。这在自顶向下设计方法深入人心的今天,往往有些力不从心,因为它很难恰如其分地模拟真实世界。 对于C++语言来说,设计的基本单位是类。类是逻辑上相关的函数与数据的封装,它是对所要处理的问题的抽象描述。引入了类概念的面向对象程序设计语言 C++具有更高的代码集成度,从而更适合用于大型复杂程序的开发。而由类产生的基类、继承、派生、模板等概念,更是极大地丰富了软件工程师解决问题的手段。如此强大的概念,如若使用不当,必然带来许多意想不到的隐患。为此MISRA C++:2008中专门讨论了与类使用相关的问题,简单举例如下。 规则10-1-3(强制): 同一层级的某个基类不允许既是虚基类又是非虚基类。 这是因为,如果一个基类在多重继承层次中既是虚类型,又是非虚类型,则在派生出来的相应对象中将至少有2个该基类的子对象拷贝。这可能与开发人员的理解不一致。为了更好说明这个问题,请看下面的程序:
(责任编辑:admin) |