C++面向对象编程与类之间的关系(继承、复合、委托)

本文深入解析C++中面向对象编程的关键概念,包括:1. 复合(Composition)与has-a关系的实现;2. 继承(Inheritance)与is-a的关系,以及构造与析构顺序;3. 委托(Delegation)如何通过引用实现接口隔离;4. 虚函数的使用,涉及纯虚函数与虚函数的区别。实例演示了观察者模式中的委托和继承应用。
摘要由CSDN通过智能技术生成

C++面向对象编程与类之间的关系(继承、复合、委托)

1、复合(Composition)

2、继承(Inheritance)

3、委托 (Delegation)

4、虚函数

一、复合(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(); }
}

我们分析上面一段代码,队列queue中有一个双端队列Sequence对象,我们称这种关系为复合。队列中大部分的函数底层的实现我们是复用的双端队列对象Sequence的函数。

分析复合Composition下的构造和析构<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值