C++面向对象程序设计-Third Week
2017-11-05 本文已影响0人
Letmethinkthink
Knowledge Point:
Composition(复合):
Compositionqueue类中引入deque类,queue类中方法实现可以依靠deque类中的实现方法。
生命周期几乎是同时产生,同时消失。
Delegation(委托):
DelegationString类中声明StringRep类对象,需要使用再生成StringRep类对象,因此生命周期也不同,两种类对象不是同时生成的。
Inheritance(继承):
Inheritance基类的析构函数必须是virtual。生成对象时先构造Base再构造Dervied由内而外,析构顺序相反,由外而内。
Virtual functions(虚函数)
non-virtual:不需要重定义,一般函数。
virtual:有默认定义,但是希望重新定义。
pure virtual:没有默认定义,一定要重定义。
Inheritance+Composition关系下的构造和析构
构造了如上三个关系的类
代码截图,可见这种关系下,先构造基类,然后复合类,最后才是派生类,析构顺序相反。
这种关系状况下,可以预期结果现在基类中构造复合类,然后基类,在派生类,运行果然这样。
心得:这周老师讲了关于复合、委托、继承三种类的关系,还有一些设计模式,像是开启了一扇新世界的大门,看到外面的世界。
静态的data一定要在外部进行定义,分配内存。
经典的23中设计模式是对某种特定问题的解法,组合运用了类的这些关系。虽然我理解的不是很深刻,也只是皮毛,在以后的学习中加深对这些内容的理解
分享一下找到的关于经典的23种设计模式的总结(慢慢研究)
:http://blog.csdn.net/cooldragon/article/details/52164380