C++设计目标
C++的设计目标,就是要让C++既具有适合于系统程序设计的C语言所具有的可适应性和高效性,又能在其程序组织结构方面具有像Simula那样的语言设施(Simula所支持的这种程序组织结构通常被称为面向对象程序设计风格)。在设计的时候,还做了很大的努力,使得引借自Simula的高层次的程序设计技术能够应用于系统程序设计之中。这即是说,C++所提供的抽象机制能够被应用于那些对效率和可适应性具有极高要求的程序设计任务之中。
上述的C++之设计目标可以小结如下:
l l 对于要解决实际问题的程序员而言,C++使程序设计变得更有乐趣;
l l C++是一门通用目的的程序设计语言,它:
——是一个更好的C;
——支持数据抽象;
——支持面向对象程序设计;
——支持范型程序设计。
对范型程序设计的支持在C++设计的后期才被作为一个明确、独立的目标来实现。而在C++演化过程的大部分时间里,我一直把范型程序设计以及支持它的语言特性划归在“数据抽象”的大标题之下。
设计原则
在[Stroustrup,1994]中,C++的设计规则被分为基本规则、基于设计的规则、语言的技术性规则以及基于低层次程序设计的规则四个方面,分列在下文中。
基本规则
l l C++的每一步演化和发展必须是由于实际问题所引起的;
l l C++是一门语言,而不是一个完整的系统;
l l 不能无休止的一味追求完美;
l l C++在其存在的“当时”那个时期必须是有用处的;
l l 每一种语言特性必须有一个有根据的、明确的实现方案;
l l 总能提供一种变通的方法;
l l 能为意欲支持的每一种程序设计风格提供易于理解的支持方法;
l l 不强制于人。
可以注意到,基本规则的最后三条暗示了两点:对适用于真实世界中各种应用的便捷工具的强调;对程序员的技术和取向(偏好)的充分考虑。从一开始,C++面向的就是那些要做实际项目的程序员。所谓的“完美”被认为是不可能达到的,这是由于C++用户在需求、背景和待解决问题上存在着太大的不同。况且,在一门通用目的的程序设计语言的整个生存期之内,连对“完美”一词的诠释都可能会有极大的改变。由此可知,在语言的演化过程中,来自用户的反馈和语言实现者们积累的经验才是最为重要的。