Boolan C++面向对象高级编程(上)第三周

类之间的关系

在本次课程中,类与类之间的关系被分为三种:复合、继承、委托。

复合Composition

复合可以表示为has-a
class A has a class B.


对于复合,各自负责各自的构造和析构就可以,构造Container时,需要先构造Component,这一步是由编译器来帮我们实现的。需要注意的是编译器帮我们构造Component时,采用的是默认的构造函数,若默认构造函数不是我们想要的时候,就需要自己按照上图的格式,利用构造Container时的初值列来先完成Component的构造

委托Delegation (Composition by reference)


左边通过指针指向右边,在左边需要右边的时候就可以通过指针来调用右边。

这样做的一个好处是,左边永远不用变,但是可以通过指针指向不同的右边来实现不同的功能

继承

继承可以表示为is-a


对于构造与析构,继承与复合一致。
先调用父类的构造函数,再执行自己的构造函数。先执行自己的析构函数,再调用父类的析构函数。
注意!!!!!
父类的析构函数必须是虚函数!

虚函数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容