C++中组合的使用

 

 FAQ 5.09

        组合使软件在开发过程中可以聚合已存在的组件而不用去新建一个。

        组合(有时候叫聚合)是将一个对象(部分)放到另一个对象里(组合)。它是一种 has-a 的关系。例如,FordTaurus是由Engine,Transmission,InstrumentPanel,等等组合而成.也就是说,FordTaurus含有一个Engine.(Engine 是FordTaurus的Part-of):

#include <iostream>
using namespace std;

class Engine {
public:
  virtual void start();
};

void Engine::start()
{
  cout << "starting Engine/n";
}

class FordTaurus {
public:
  virtual void start();
protected:
  Engine engine_;    // An Engine is part of a FordTaurus
};
void FordTaurus::start()
{
  cout << "starting FordTaurus/n";
  engine_.start();
}

int main()
{
  FordTaurus taurus;
  taurus.start();
}

 

有时候开发者在他们该使用组合的时候错误的使用继承(kind-of),例如,他们可能使FordTaurus从Engine继承,这是把Kind-of和Part-of给搞混乱了.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值