1.派生类构造函数的要点:

首先创建基类对象;

应通过成员初始化列表将基类的初始化信息传递给基类的构造函数;

派生类构造函数应初始化新增的数据成员

2.首先执行派生类的析构函数,然后自动调用基类的析构函数.

3.基类指针可以在不进行显式类型转换的情况下指向派生类对象,基类引用可以在不进行显式类型转换的情况下引用派生类对象.

4.C++有三种继承方式,共有继承,私有继承和保护继承

5.带有virtual的方法,在调用的时候,将调用指针或者引用所指向的具体对象的类的方法.

基类声明中如果析构函数为虚,可以确保释放派生类的时候,按照正确的顺序来调用析构函数.

6.在编译过程中进行的联编称为静态联编,或早期联编。编译器对非虚方法使用静态联编。

程序运行时选择正确的虚函数的代码,被称为动态联编,又称为晚期联编。

静态联编效率高,是默认的联编方式。

如果需要在派生类中重新定义基类的方法,则将它设置为虚方法,否则是非虚的。

C++中,基类有虚函数表,声明派生类的时候,如果重载了基类的虚函数,则会替换掉虚函数表中该函数的地址。

7.构造函数被声明为虚是没有意义的。

析构函数应当是虚函数。

8.在子类中,重新定义函数,并不会形成重载,而是屏蔽掉父类的同名方法。

想要重载父类方法,函数的特征标应该完全相同,但是如果返回的是父类的引用或指针,则可以改成子类的引用或指针。这被称为返回类型协变(covariance of return type)

如果父类中有多个同名函数,而子类只重载了一个,则剩下的函数版本会被屏蔽掉。子类只能使用重载的那个函数。

9.包含纯虚函数的类,只能作为基类使用。

抽象基类(abstract base class, ABC)抽象基类

纯虚函数,仍然可以提供函数的实现。声明了=0,只是表示可以不定义,而不是不能定义。

转载于:https://www.cnblogs.com/fablegame/p/6430239.html

《C++ Primer Plus(第六版)》(25)(第十三章 类继承 笔记)相关推荐

  1. C++ primer Plus(第六版)第十三章 类继承 章节编程练习答案

    1.以下面的类声明为基础: 派生出一个Classic类,并添加一组char成员,用于存储指出CD中主要作品的字符串.修改上述声明,使基类的所有函数都是虚的.如果上述定义声明的某个方法并不需要,则请删除 ...

  2. C primer plus(第六版)第十一章源代码

    C primer plus(第六版)第十一章源代码 /* 11.1 */ #include<stdio.h> #define MSG "I am a symbolic strin ...

  3. 【C++ Primer】第十三章 类继承

    一,类继承         定义:从已有的类派生出新的类,而派生类继承了原有类的特征,包括方法.         目标:提供可重用的代码 二,一个简单的基类 #include <iostream ...

  4. C++ Primer Plus(第六版)第12章 类和动态内存分配

    严重性代码说明项目文件行禁止显示状态 错误    C4996    'strcpy': This function or variable may be unsafe. Consider using ...

  5. C primer plus(第六版)第五章源代码

    第五章 /* 5.1 */ #include<stdio.h> #define ADJUST 7.31 int main(void) {const double SCALE = 0.333 ...

  6. C Primer Plus (第六版) 第十四章_编程练习答案

    no1.c //重新编写复习题5,用月份名的拼写代替月份号(别忘了用strcmp()).在一个简单的程序中测试该函数 # include <stdio.h> # include <s ...

  7. C++ Primer Plus 第六版(中文版)第十一章(重置版)编程练习答案

    //本章程序需分多文件运行,请读者注意; //本博主所写的代码仅为阅读者提供参考; //若有不足之处请提出,博主会尽所能修改; //附上课后编程练习题目; //若是对您有用的话请点赞或分享提供给它人; ...

  8. c++primer plus第六版第十二章第一题

    //h文件 #pragma once class cow {char name[20];char*hobby;double weight; public:cow();cow(const char*m, ...

  9. C Primer Plus第六版(中文版)编程练习答案(完美修订版)汇总

    //本文是博主编写的C Primer Plus第六版(中文版)编程练习答案的所有链接; //使用超链接汇总于此,若是有用请点赞收藏并分享给他人; C Primer Plus 第六版(中文版)第二章(完 ...

最新文章

  1. 反弹模型(bounce model)----adot, H, Hdot变化图
  2. 【字符串】大小写的转换
  3. the virtual machine is configured for 64-bit guest operating systems
  4. 【数据库系统】模式图实例
  5. 2019.01.24 NOIP训练 旅行(轮廓线dp)
  6. gnuplot画图命令_Gnuplot科学绘图(二十六)——image 绘图
  7. 超文本标记语言HTML
  8. java与sql心得体会_学习心得
  9. 前端开发框架整理(一些记录给自己看的)
  10. Theme相关:button的效果不显示
  11. java中的锁池和等待池
  12. Quartz的时间配置
  13. 哇撒!这几个SpringBoot前后端分离项目(附源码),star过千,快去收藏夹吃灰吧。。。
  14. [抽奖系统下载]多进程现场抽奖展示系统V2-双屏PPT版-专业抽奖展示工具-具有强劲引擎的抽奖系统-PPT双屏技术深度应用,国内唯一
  15. C#50个经典小程序代码
  16. Flash 第二篇 AS影片剪辑
  17. link标签的用法及link属性大全
  18. 量化投资学习——一份高频因子的研报综述
  19. 人脸识别-----Olivetti Faces人脸数据集合处理
  20. VS2019 Xamarin 零基础开发一个简单的App实例

热门文章

  1. 锤子剪刀布pat-1018
  2. jQuery异步加载数据并添加事件示例
  3. ActiveMQ入门实例
  4. 使用maven引入Apache poi jar包
  5. data-role参数表:
  6. 重新理解javascript回调函数
  7. java8 入门脚本之家_Java 8中的Lambda表达式
  8. Asp.Net微信发布菜单,出现“invalid sub button url domain hint”错误
  9. bootstrapselect使用 Bootstrap's dropdowns require Popper.js
  10. word 2010中正文页码如何从第1页开始?