类与类之间的三种主要关系
- Inheritance 继承关系
- Composition 组合关系
- Delegation 聚合关系
组合
定义:has-a关系,一个类中有包含另一个类,是包含一个对象,不是包含一个指针。如果你组合了这个类,那么你将拥有这个类的全部功能
1.实例
#include<deque>
#include <queue>
template <class T>
class queue {
...
protected:
std::deque<T> c; // 底層容器 has-a的关系
public:
// 以下完全利用 c 的操作函數完成
bool empty() const { return c.empty(); }//利用deque的功能来实现queue新定义的功能
size_t size() const { return c.size(); }
reference front() { return c.front(); }
reference back() { return c.back(); }
void push(const value_type& x) { c.push_back(x); }
void pop() { c.pop_front(); }
};
通常来说queue可以由deque来实现,在deque已有的特性上进行更改得到想要特性,这个时候我们就称queue组合了deque.