C++基础知识学习笔记(二)
来源:互联网 发布:淘宝退货运费险规则 编辑:程序博客网 时间:2024/06/05 20:49
派生类和继承
继承------软件复用
1. 实例化一个派生类对象时,先调用基类的构造函数。若基类的构造函数没有参数或者没有显式定义基类的构造函数,定义派生类构造函数时不必显式初始化基类成员,甚至无需定义构造函数,编译器会自动调用派生类的默认构造函数,派生类的默认构造函数去调用基类的默认构造函数。派生类不能继承基类的构造函数和析构函数,故当基类含带参的构造函数时,派生类必须定义构造函数。
2. C++中一般使用成员初始化列表的方式构造派生类的构造函数,形式如下:
派生类名::派生类构造函数名(参数表):基类构造函数(参数表),对象成员名(参数表),......,对象成员名n(参数表){} 其中,基类的参数可来自派生类的构造函数的参数表或者常数值或表达式。
3. 多重继承机制带来的歧义问题,采用虚拟继承机制解决。使用作用域运算符(::)消除多继承带来的歧义性。
4. C++中,如果要使公共基类只产生一个拷贝,应把该基类声明为虚基类,要求从基类派生新类时,使用关键字virtual将基类声明为虚基类。虚拟机制需要注意:
1>在虚基类中定义带参构造函数,且未定义默认构造函数,在整个继承结构中,所有直接/间接派生类中都必须使用成员初始化列表调用虚基类的构造函数,初始化虚基类的成员;
2>在同一继承层次同时包含虚基类和非虚基类,编译器先调用虚基类的构造函数;
3>由于二义性问题的存在,实际使用中不建议使用多继承;
5. 多重继承的构造函数调用顺序
1>任何虚拟继承基类的构造函数按照它们被继承的顺序构造;
2>任何非虚拟继承基类的构造函数按照它们被继承的顺序构造;
3>任何成员对象按照它们声明的顺序调用;
4>派生类自己的构造函数。
- 基础知识学习笔记(二)
- C语言基础知识学习(二)
- C语言基础知识学习(二)
- PHP学习笔记(二)基础知识结束
- C++基础知识学习笔记(二)
- 汇编语言基础知识学习笔记(二)
- java基础知识学习笔记(二)
- pl/sql基础知识学习笔记(二)
- C++ Primer 学习笔记-基础知识(二)
- Object-C学习笔记二-----面向对象编程基础知识
- 标准C基础知识笔记二
- C++学习笔记(二)--基础知识
- 【二】Gradle 基础知识学习笔记
- c学习笔记(二)
- C/C++学习笔记:基础知识
- Objective-c基础知识学习笔记
- C#和.NET基础知识——学习笔记(二)
- C++学习笔记(第一章 C++的基础知识 之二)
- java .net 云计算
- as3连连看游戏算法
- 软件系统开发流程
- core dump
- SCCM with SP2安装出现创建和初始化站点数据库失败
- C++基础知识学习笔记(二)
- java实现的 猜拳游戏
- Jquery validator 处理ajax表单提交的验证
- 《Java编程思想》学习笔记8——泛型编程高级
- 初学J2ME的时,看过的好文章(一)
- android edittext 键盘弹出屏幕自适应
- kdict
- 矩阵连乘的最少次数——dp
- 初学J2ME时,看过的好文章(二)