C++继承与组合

1.继承

继承是面向对象的程序设计中的一个重要的概念,可以通过将问题域中的事物抽象成类完成问题到程序空间的映射,从而简化问题的求解。
在这里插入图片描述

  • 继承的特点

①继承可以提高代码复用,减少工作量以及增加工作效率。
②面向对象程序设计中的继承和现实中的继承有很大相关性,现实中的继承和逻辑系统中的关系额可以帮助确定面向对象程序设计中的继承关系。
③继承的父类和子类一定要有逻辑关系,比如椭圆和圆的关系就不适合使用继承表示,因为对于圆来说,椭圆的长轴和短轴没有直接的联系,可能就是圆的面积和周长和椭圆优点联系。

  • 继承关系
class Vehicle{
public:
	int speed;
	int friction;
	virtual void drive();
	virtual void stop();
}
class Bicycle : Vehicle{
public:
	string double_tire;
}
class Motorcycle : Vehicle{
public:
	string Tank;
}
class Car : Vehicle{
public:
	string Four_tire;
}

2.组合

组合也是面向对象中的一种代码重用的方法,这意味着组合类中的某些数据成员是其他已有类的对象。一般来要考虑类之间是is还是has的关系,如果是is的关系就是用继承,如果是整体部分就考虑使用组合

  • 组合的特点

①将一个类的对象作为另一个类的成员,被称作组合或包含,执行成员类的构造函数初始化对象成员。
②组合关系强调强整体,如果整体被破坏那么部分类就不能单独存在,这也是和聚合的区别,当整体对象生命周期被销毁时,局部对象也会被销毁。

  • 组合关系
class CPU{ //...}
class Memory{ //...}
class Peripheral { //...}
class Computer{
	Cpu cpu;
	Memory memory;
	Peripheral peripheral;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值