Geekband_C++面向对象高级编程_第三周学习笔记

(1)类与类之间的关系

 组合 composition  has-a 关系,

继承 inheritance is-a 关系 

委托 delegation 是 Compsition by reference 指针。


compositon 的析构和构造, 构造由内而外(建房子), 析构由外而内 (拆房子)。



Composition

构造,Container先调用Component的构造函数,再调用自己的构造函数。Container::Container():Component(){...}

析构,Container先调用自己的析构函数,再调用Component的析构函数。Container::~Container(){... ~Component()}

(2)inheritance 的构造和析构,构造由内而外(建房子), 析构由外而内 (拆房子)。



Inheritance

构造,Derived先调用Base的构造函数,再调用自己的构造函数。Derived::Derived():Base(){...}

析构,Derived先调用自己的析构函数,再调用Base的析构函数。Derived::~Derived(){... ~Base()}


(3)继承和虚函数 inheritance with virtual functions

虚函数:基类中的成员函数,虚函数重新定义 override

non-virtual函数,不希望派生类重新定义它。void draw();

virtual函数,希望派生类重新定义,且基类对此已有默认定义。virtual void draw();

pure virtual 函数,希望派生类一定要重新定义它,基类对它没有默认的定义。virtual void draw() = 0;


(4)继承和组合 Inheritance & Composition,构造由内而外, 析构由外而内 。



Inheritance&Composition

第一种情况:构造 Base -> Component -> Derived 析构 Derived -> Component -> Base

第二种情况:构造 Component -> Base -> Derived 析构 Derived -> Base -> Component

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值