GeekBand C++面向对象高级编程(三)

本笔记为GeekBand C++面向对象高级编程(上)第二周课程之总结。

组合与继承

组合(composition),类A has-a 类B

构造由内而外:


析构由外而内:


委托(Delegation)-- Composition by reference


pointer to implementation

继承(Inheritance)


类A is-a 类B

构造由内而外:derived的构造函数先调用base的构造函数,然后才执行自己

析构由外而内:derived的构造函数先执行自己,然后才调用base的析构函数

base的析构函数必须是虚函数,否则会出现undefined behavior

Inheritance with virtual function

* non-virtual:不希望derived重定义(override)它

* virtual:希望derived重定义(override)它,且已有默认定义

* pure-virtual:希望derived一定重定义(override)它,且没有默认定义

Inheritance + composition下的构造与析构


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容