在现实生活中

来源:互联网 发布:阿里云通用事业部 编辑:程序博客网 时间:2024/05/01 23:14
在现实生活中,复杂的对象往往是建立从更小,更简单的对象。例如,一辆汽车是用一个金属框架,一个发动机,一些轮胎,一个传动,一个方向盘,以及大量的其他零件。一台个人电脑是由一个中央处理器、一个主板、一些内存等组成的。即使你是由小部分组成:你有一个头,一个身体,一个身体,一些腿,手臂等。这一过程中,从简单的建筑复杂的对象被称为组成(也称为对象组成)。
更具体地说,构成用于具有彼此有关系的对象。一辆汽车有金属框架,有一个引擎,并具有传输。个人计算机有CPU,主板,和其他组件。你个人的头,身体,四肢。
到目前为止,我们都已经在我们的例子中使用的类的成员变量,有内置的数据类型(如int、double)。虽然这是一般的设计和实施小,简单的类,它很快就变得更复杂的类,特别是那些建立从许多子部分的负担。为了方便从简单的复数类建筑,C++允许我们在一个非常简单的方式做对象组成的类和其他类中的成员变量。
让我们来看一下这是怎么做的。如果我们设计一个个人计算机类,我们可以这样做(假设我们已经写了一个处理器,主板,内存类):

包括CPU。”
包括“主板。”
包括“RAM。”
计算机类
{
私人:
CPU m_ccpu;
主板m_cmotherboard;
RAM m_cram;

初始化类的成员变量
在初始化列表上一课,你了解到初始化类成员的首选方式是通过初始化列表而不是分配。所以,让我们写一个构造函数,我们计算机的类,使用初始化列表来初始化成员变量。此构造函数将采取3个参数:一个处理器速度,一个主板模型,和一个内存大小,它会然后传递到相应的成员变量时,他们的构造。

个人电脑:个人电脑(ncpuspeed:int,char * strmotherboardmodel,int nramsize)
:m_ccpu(ncpuspeed),m_cmotherboard(strmotherboardmodel),m_cram(nramsize)

现在,当个人计算机对象实例化时使用此构造函数,使计算机的对象将包含一个对象初始化CPU与主板ncpuspeed,对象初始化strmotherboardmodel,和内存对象初始化nramsize。
值得一提的是,这一组合意味着复杂的类和任何子类之间的所有权。当创建复杂类时,创建子类。当复数类被破坏时,子类同样被破坏。
一个完整的例子
上面的例子是有用的,在给出的一般想法如何组成工作,让我们做一个完整的例子,你可以自己编译。许多游戏和模拟的生物或物体,移动周围的板,地图,或屏幕。所有这些生物/物有一个共同点是,他们所有的个人的位置。在这个例子中,我们将创建一个生物类,它使用一个点类来保持该生物的位置。
首先,让我们设计点类。我们的生物将生活在一个二维的世界,所以我们的点类将有2个维度,我们将假设世界是由离散广场,所以这些尺寸将永远是整数。
0 0