2018-01-13

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(功能实现类)


a,b,c共享"Hello"字符串,n计数3,若a要改变则再建立一个副本,不影响bc。

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,析构顺序相反


委托+继承:

           用例:实现多窗口打开同步功能

你可能感兴趣的:(2018-01-13)