组合与继承

    在面向对象编程(OOP)和面向对象设计(OOD)中,类与类之间有三大关系,分别是继承(Inheritance)、复合(Composition)和委托(Delegation)。

一、Composition(复合),表示has-a

template <class T, class Sequence = deque<T>>
class queue
{
  ...
protected:
  Sequence c;  //底层容器
public:
  //以下完全利用c的操作函数完成
  bool empty() const {return c.empty();}
  size_type size() const {return c.size();}
  reference front() {return c.front();}
  reference back() {return c.back();}
  //deque是两端可进出,queue是末端进前端出(先进先出)
  void push(const value_type& x) {c.push_back(x);}
  void pop() {c.pop_front();}
};
template <class T>
class queue
{
  ...
protected:
  deque<T> c;  //底层容器
public:
  ...
};

二、Delegation(委托)

三、Inheritance(继承),表示is-a

struct _List_node_base
{
  _List_node_base* _M_next;
  _List_node_base* _M_prev;
};

template<typename _Tp>
struct _List_node
  : public _List_node_base  //表示继承关系
{
  _Tp _M_data;
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值