C++PrimerPlus学习之类学习四(类继承)
2013-08-13 15:48
309 查看
这里只列出一些重要的自己容易忽略的知识点,对于类继承的概念和原理性的东西不做描述。
首先是关于初始化列表:
派生类应该通过初始化列表来将基类信息传递给基类的构造函数。
初始化列表的赋值顺序取决于类声明中成员变量的声明顺序,和初始化列表的顺序无关。
成员初始化列表只能用于构造函数。
基类和派生类之间的关系:
基类指针可以指向派生类的成员(不进行显式类型转换)。
基类的引用可以在不显式类型转换下引用派生类对象。
虚函数的工作原理,参看陈皓的讲解,很不错的一篇文章:
http://blog.csdn.net/haoel/article/details/1948051/
使用虚函数,每个对象都将增大,增大的部分为存储地址的空间;对于每个类,编译器都会创建一个虚函数地址表;每一次的函数调用都会查找该虚函数地址表。
当类中声明了纯虚函数,则该类不能进行实例化,只能作为基类使用。
当基类和派生类都使用动态内存分配时,派生类的析构函数,复制构造函数,赋值运算符都必须使用相应的基类方法来处理基类元素。
不能被继承的元素:
1. 构造函数。产生一个派生类对象时,会先调用基类的构造函数,然后调用派生类的构造函数。
2. 析构函数。调用顺序和构造函数相反。
3. 赋值运算符。
首先是关于初始化列表:
派生类应该通过初始化列表来将基类信息传递给基类的构造函数。
初始化列表的赋值顺序取决于类声明中成员变量的声明顺序,和初始化列表的顺序无关。
成员初始化列表只能用于构造函数。
基类和派生类之间的关系:
基类指针可以指向派生类的成员(不进行显式类型转换)。
基类的引用可以在不显式类型转换下引用派生类对象。
虚函数的工作原理,参看陈皓的讲解,很不错的一篇文章:
http://blog.csdn.net/haoel/article/details/1948051/
使用虚函数,每个对象都将增大,增大的部分为存储地址的空间;对于每个类,编译器都会创建一个虚函数地址表;每一次的函数调用都会查找该虚函数地址表。
当类中声明了纯虚函数,则该类不能进行实例化,只能作为基类使用。
当基类和派生类都使用动态内存分配时,派生类的析构函数,复制构造函数,赋值运算符都必须使用相应的基类方法来处理基类元素。
不能被继承的元素:
1. 构造函数。产生一个派生类对象时,会先调用基类的构造函数,然后调用派生类的构造函数。
2. 析构函数。调用顺序和构造函数相反。
3. 赋值运算符。
相关文章推荐
- C++ Primer Plus学习:第十三章 类继承(3)
- 《C++ Primer Plus》14.3 多重继承 学习笔记
- 《C++ Primer Plus》14.2 私有继承 学习笔记
- 【学习笔记】C++primer plus 13.继承
- C++ Primer Plus学习之类学习一
- C++ Primer Plus学习之类学习二
- C++ Primer Plus学习之类学习三(类和动态内存分配)
- C++ Primer Plus学习:第十三章 类继承(1)
- C++ Primer Plus学习:第十三章 类继承(2)
- [学习笔记] C++ primer plus 第十三章 类继承
- 2012/1/31 《C++ Primer Plus》第十三章:类继承 学习笔记
- 2012/1/31 《C++ Primer Plus》第十三章:类继承 学习笔记
- C++ Primer Plus学习笔记之继承类的初始化顺序
- C++之类和对象——C++ primer plus学习(一)
- C++ Primer Plus学习:第四章 复合类型(3)
- C++ Primer plus 学习笔记之第七章(1)
- C++ Primer 学习笔记_70_面向对象编程 -纯虚函数、器皿与继承
- 【学习C++】C++ Primer Plus (第六版)第十一章编程练习1-7
- C++ Primer Plus 学习笔记(第八章)
- C++ Primer Plus学习笔记之STL函数对象