讨论问题3: 类组合
组合的概念是类中的成员数据是另一个类的对象
举例:上面的Distance类就是类组合,它的数据成员p1和p2是Point类的对象;另外作业Rectangle类也是类组合
理解类组合:类组合表达的是” has a “,“有一个”(或者说“包含”)这样的意义,是代码重用的一种手段。同学们在完成Rectangle类时,有的用了公有继承,公有继承表达了“is a ”的意义,派生类对象是一个基类的对象。公有继承也是代码重用的手段,将在后面的章节学到。
学习类组合需注意的问题:
特别关注构造函数的写法,用初始化表列完成子对象的初始化,如果没写,系统会调用子对象默认构造函数。也就是说,系统先完成子对象的初始化(分配空间),然后再进行其他数据成员的初始化。
详情请见上面的Distance类和下面参考代码的Rectangle类。