美文网首页
[GeekBand]第三周学习笔记

[GeekBand]第三周学习笔记

作者: kynasln | 来源:发表于2016-05-30 08:27 被阅读0次

继承、组合、委托


Composition (组合),表示has-a


组合关系下的构造和析构

构造由内而外

Container的构造函数首先调用Componentdefault构造函数,然后才执行自己。

Container::Container(...):Component() {...};

析构由外而内

Container的析构函数首先执行自己,然后才调用Component的析构函数。

Container::~Container(...){...~Component() };


Delegation (委托).Composition by reference.

pointer to implementation


Inheritance (继承),表示is-a

类Ais-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下的构造与析构

相关文章

网友评论

      本文标题:[GeekBand]第三周学习笔记

      本文链接:https://www.haomeiwen.com/subject/xowqdttx.html