Boolan 第三周
relationships between classes :
类与类之间的关系:继承(inheritance)、复合(composition)、委托(delegation)
复合关系:如:queue has a deque
Adapter设计模式: 由一个功能更强大的类通过复合得到一个简化功能的类,所有功能由父类完成。如:queue先进先出,deque两端进出,queue复合deque后仅通过调用父类的函数就可以满足简化的需求。
复合关系下的构造和析构:构造由内向外(先component的default ctor,后container),析构由外向内(先container,后component)
委托:compositon by reference 如:class string has a pointer of StringRep(功能实现类)
pimpl:pointer to impletation 属性类与功能实现类分开,可以通过delegation不同的功能实现类实现对同一个属性类拓展不同功能
继承:如:_List_node is a _List_note_base
继承:子类拥有父类的public和protect的数据
继承类型:public,private,protect
父类的成员函数分为:
1、non_virtual:不希望子类override
2、virtual:允许子类override,自身已有默认定义。
3、pure virtual:子类一定要override,没有默认定义
virtual 实现的原理
继承+复合关系下的构造和析构:
子类有复合类情况下的构造顺序:1、Base;2、Component;3、Derived,析构顺序相反
父类有复合情况下的构造顺序:1、Component;2、Base;3、Derived,析构顺序相反
委托+继承:
用例:实现多窗口打开同步功能