C++面向对象程序设计-Third Week

Knowledge Point:



Composition(复合):

Composition

queue类中引入deque类,queue类中方法实现可以依靠deque类中的实现方法。

生命周期几乎是同时产生,同时消失。

Delegation(委托):


Delegation

String类中声明StringRep类对象,需要使用再生成StringRep类对象,因此生命周期也不同,两种类对象不是同时生成的。

Inheritance(继承):


C++面向对象程序设计-Third Week_第1张图片
Inheritance

基类的析构函数必须是virtual。生成对象时先构造Base再构造Dervied由内而外,析构顺序相反,由外而内。

Virtual functions(虚函数)

non-virtual:不需要重定义,一般函数。

virtual:有默认定义,但是希望重新定义。

pure virtual:没有默认定义,一定要重定义。

Inheritance+Composition关系下的构造和析构



C++面向对象程序设计-Third Week_第2张图片

构造了如上三个关系的类

代码截图,可见这种关系下,先构造基类,然后复合类,最后才是派生类,析构顺序相反。


C++面向对象程序设计-Third Week_第3张图片

这种关系状况下,可以预期结果现在基类中构造复合类,然后基类,在派生类,运行果然这样。

C++面向对象程序设计-Third Week_第4张图片

心得:这周老师讲了关于复合、委托、继承三种类的关系,还有一些设计模式,像是开启了一扇新世界的大门,看到外面的世界。

静态的data一定要在外部进行定义,分配内存。

经典的23中设计模式是对某种特定问题的解法,组合运用了类的这些关系。虽然我理解的不是很深刻,也只是皮毛,在以后的学习中加深对这些内容的理解

分享一下找到的关于经典的23种设计模式的总结(慢慢研究)

:http://blog.csdn.net/cooldragon/article/details/52164380

你可能感兴趣的:(C++面向对象程序设计-Third Week)