C++学习笔记(四)

文章探讨了C++中类之间的三种主要关系:复合,通过包含一个对象来实现;继承,子类从父类获取特性;以及委托,使用指针引用其他对象。复合关系下构造顺序是从内到外,析构是从外到内。继承分为public,private,protected三种,并强调虚函数在多态中的作用,以及析构函数在继承链中的调用顺序。
摘要由CSDN通过智能技术生成

组合、继承。委托(类与类之间的关系)

复合

 queue类里有一个deque,那么他们的关系叫做复合。右上角的图表明复合的概念。上图的特例表明,queue中的功能都是通过调用c进行实现(adapter)。

复合关系下的构造和析构

 构造由内到外

析构由外到内

委托(引用复合)

 通过指针进行指向。与复合不同的点在于,类和包含的不一定同时存在。

继承

 黄色这一行代表两个类具有继承关系,分三种继承(public private protected)。

上图的继承方式,父类的数据被完全继承。

子类在外,父类在内。子类的对象有父类的成分。父类的析构函数必须是虚函数,否则会出现未定义操作。

 

虚函数与多态

 在函数前加virtual,则为虚函数。函数的继承,继承的是调用权。

如果不希望子类重新定义,则不加virtual。

虚函数:希望子类重新定义,已有默认定义。

纯虚函数:希望子类重新定义,无默认定义。

继承加复合关系下的构造和析构

Derived 的构造函数首先调用 Base 的 default 构造函数,然后调用 Component 的 default 构造函数,然后才执行自己的。

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

 先执行父类构造函数,再执行复合类的构造函数,最后执行本类的构造函数。而析构次序反之。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值