UML语言是一种典型的面向对象建模语言,而不是一种编程语言,在UML语言中用符号描述概念,概念间的关系描述为连接符号的线。
UML类图
一个类图是由类和与之相关的各种静态关系共同组成的图形。类图展示的是软件模型的静态结构、类的内部结构以及和其它类的关系。
通过类图,完全能够描述本书中介绍的面向对象的相关概念(如类、模板类等),以及它们的相互关系。类图是描述类或对象的图形标识以及描述它们之间的 相互关系的图形标识组成。
C++语提供的标准模板库便是面向对象程序设计与泛型程序设计思想相结合的一个良好典范。
泛型程序设计的基本概念
所谓泛型程序设计,就是编写不依赖于具体数据类型的程序。C++中,模板是泛型程序设计的主要工具。
泛型设计的主要思想是将算法从特定的数据结构中抽象出来,使算法成为通用的、可以作用于各种不同的数据结构。这样就不必为每种容器都编写一套同样的算法,当容器类模板修改、扩充时也不必重写大量算法函数。这种以函数模板形式实现的通用算法与各种通用容器结合,提高了软件的复用性。
标准模板库最初是由HP公司开发的一个用于支持C++泛型编程的模板库,1994年被纳入C++标准,成为C++标准库的一部分。由于C++标准有多种不同的实现,因此STL也有不同的版本,但它们为用户提供的接口都遵循共同的标准。STL更大的意义在于,它定义了一套概念体系,为泛型程序设计提供了逻辑基础。STL中各个类模板、函数模板的参数都是用这个体系中的概念来规定的。使用STL的一个模板时所提供的类型参数既可以是是C++标准库中已有的类型,也可以是自定义的类型,只要这些类型是所要求概念的模型,因此,STL是一个开放的体系。