以对用户隐藏对一个数据对象的操作细节。用户只可以通过一个公共的接口来访问这个对象。一个C++的类既包括共有的部分,又包括私有的部分。公有的部分提供给用户关于这个类的接口,私有的部分只有构造这个类的函数才可以访问。
C++提供了关键字来说明类中哪些成员是不可见的,哪些部分是其公共接口。不可见的成员在其定义的部分标明了关键字private。公共的接口部分标有关键字public。当一个类是私有的类时,意味着只有这个类的函数或友元可以使用它。
一个类的定义并不分配内存。当一个数据对象被创建并且具有变量声明时才分配内存。构造函数和析构函数提供了对象的初始化和释放功能。当一个对象被声明时,它的构造函数初始化其在内存的值。当对象离开它所在的范围时,调用析构函数释放对象。
我们不可能对用户完全的隐藏操作的细节。C++无法提供一个使所有细节完全排除在基本操作之外的方法,因此一个类的私有部分必须这个类的定义,从而有效的访问这个类的变量,并可以继承。建造一个类可以使它方便的访问它父类的私有成员。C++定义了关键字protected来完成继承的实现。保护成员既可以被类的成员函数访问,也可以被派生类的成员函数访问。和私有成员相同的一点,保护成员不可以被用户程序访问。
对象所需要注意的最后一点,信息的重复传递时对象间交流的基本功能。例如一个语句i < a2.Size(),我们可以有效的把信息传给a2的对象,以确定组的大小并返回其值。实际上,这里并没有真的传递信息。C++通过调用函数模拟信息的传递。编译器确保对所需要的对象调用正确的函数,因此,在C++中,可以把信息的传递当作函数的调用。
当设计了一种方案,一种程序语言就可以被选择执行。可以在设计的过程中找到对象间的继承关系,甚至可以使用传统的,非面向对象的语言设计系统。但是,使用面向对象语言,如C++,由于语言支持对象间的继承关系,从而可以更方便的了解设计执行。
C++语言是混合型的语言,它属于多范例的语言。C++可以认为是C语言的扩展的过程语言或面向对象语言。
C++继承:任何面向对象程序语言其最主要的作用就是可以从原有的类中创建新的类,从而可以再次使用代码。继承可以从与原有的类型扩展到派生类型。
面向对象设计的一个主要操作就是要确认真实世界的个体以及各个个体之间的联系。当设计一个软件系统时,需要建立一系列的对象,并且需要互相关联的一4
系列对象。有些类之间可能不是完全的相关。大部分的类之间可以归纳为继承的关 系。将一系列的类归为一个类的层次需要明白各个类之间的关系和他们之间的细 节。但不是所有的类之间都可以建立继承的关系。 总之,一个类有两个主要的接口:一个是给用户所使用的(公共接口),另一 个派生类所使用(公有部分和保护部分的联合)。继承的部分是基本相同的。在基 类中的公共接口使用公有继承,在派生类中队用户也是公有接口。在基类中的公共 部分和保护部分使用保护继承,在派生类中可以使用成员函数,但并不对派生类的 所有用户。 最后, 当在基类中的公共部分和保护部分使用私有继承, 基类可以调用, 但用户和派生类不可以使用。 C++多态:多态是面向对象程序的三个特性中最重要的部分。多态,和继承一 起,对面向对象程序有很大的用途。 多态,就是说有多个形式,提供一个基本的软件接口以建立不同类型的对象操 作的统一的方式。C++提供了三种类型的多态:虚函数,函数重载和运算符重载。
5
The VC++ Design Rationale
C++ is designed to be an extensible platform for rapidly developing program analysis tools. Several features of C++ facilitate this: By convention, C++ written in lower case lett