类之间的两种关系复合关系实例错误示范一错误示范二半错示范正确示例 类之间的两种关系 继承:“是”关系 基类A,B是基类A的派生类 ==> “一个B对象也是一个A对象” 复合:“有”关系 类C中“有”成员变量k,k是类D的对象,则C和D是复合关系 ==> C有D这个对象D对象是C对象的固有属性或组成部分 判断和使用的时候,问自己!是不是,有没有。 复合关系实例 需要一个“业主”类,还需要写一个“狗”类 狗是有“主人”的,主人是业主 错误示范一class CDog; // 必须实现声明class CMaster {CDog dogs[10]; };class CDog {CMaster m; }; 循环定义!体积怎么算?编译不过! 错误示范二class CDog;calss CMaster { CDog * dogs[10]; };class CDog { CMaster m; }; 改变一条狗的主人的信息,并不能改变其他狗的主人的信息! 半错示范class CMaster;class CDog { CMaster * pm; };class CMaster { CDog dogs[10]; }; 逻辑说不通,狗并不是主人的固有属性狗失去了“狗格”,只能通过主人修改狗的属性 正确示例class CMaster;class CDog { CMaster * pm; };class CMaster { CDog * dogs[10]; };