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

2016-03-19  本文已影响31人  Yuxuanxuan

本笔记为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下的构造与析构


上一篇 下一篇

猜你喜欢

热点阅读