1、关于虚函数:

  任何构造函数之外的非静态函数都可以定义为虚函数。

  virtual只能出现在类内部的声明,而不能用于类外部的函数定义。

  如果基类把一个函数声明为一个虚函数,则该函数在派生类中被隐式地声明为虚函数。

  派生类中虚函数的形参与其基类对应虚函数的形参完全一致。

  派生类中虚函数的返回类型也必须与基类函数匹配(当类的虚函数的返回类型是类本身的指针或引用时改规则无效)。

  虚函数可以使用默认实参,如果某次函数调用使用了默认实参,则该实参值有本次调用的静态类型决定。若果虚函数使用了默认实参,则基类和派生类中定于的默认实参最好一致。(可参考:https://blog.csdn.net/xuyiqiang87/article/details/41349575)

2、关于抽象基类

  虚函数在声明部分后面加=0,可以被声明为纯虚函数(只能出现在类内部虚函数声明语句处)。

  纯虚函数无需定义,也可以在类的的外部提供定义。

  含有纯虚函数的类是抽象基类。抽象基类负责定义接口,而后续的其他类可以覆盖该接口。派生类如果没有覆盖纯虚函数,则它任然是抽象基类。不能创建抽象基类的对象。

3、共有、私有和受保护继承

   访问权限受到两个因素影响:

      1:在基类中该成员的访问说明符

          私有private:派生类的成员无法访问;

          公有public:派生类的成员可以访问;

          受保护protected:派生类的成员可以访问。

      2:派生类的派生列表中的访问说明符:

          私有private继承:派生类的对象无法访问基类的公有对象;

          公有public继承:派生类的对象可以访问基类的公有对象;

          受保护protected继承:派生类的对象无法访问基类的公有对象。

    基类所有的公有成员在受保护继承的派生类中都是受保护的,即派生类的对象不能访问它,但是派生类的成员可以访问。

4、派生类向基类转换的可访问性

  对于代码中的摸个给定节点来说,如果基类的公有成员是可访问的,则派生类向基类的类型转换也是可访问的,反之则不行。

  https://blog.csdn.net/monster_acm/article/details/81200777

          

转载于:https://www.cnblogs.com/zhang-le/p/10555398.html

C++ OOP学习记录相关推荐

  1. C++ Primer Plus 学习记录(第五章节-包含练习题答案)

    C++ Primer Plus 学习记录(第五章节-包含练习题答案) 5.1 for循环 5.1.1 for循环的组成部分 1.for循环的组成部分所完成的步骤 2.赋值表达式有值 3.cout中显示 ...

  2. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  3. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  4. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  5. 【Cmake】Cmake学习记录

    Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...

  6. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  7. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  8. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX

    Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...

  9. java之字符串学习记录

    java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...

最新文章

  1. zcmu1157: 新年彩灯Ⅱ(二维树状数组)
  2. linux netfilter 过滤数据包,Netfilter-iptabes报文过滤框架(一)
  3. 双网卡绑定linux7.2,CentOS 7.2 bond实现网卡聚合链路(双网卡绑定)脚本及验证(适合云平台)...
  4. CodeForces 598A Tricky Sum
  5. 解决方案-Visual Studio设置通用配置(包含路径+依赖库)
  6. 什么是软件开发生命周期?
  7. “汇新杯”科技+文化艺术专项赛介绍
  8. xp系统计算机怎么连接到网络打印机,XP系统安装网络打印机教程(xp添加网络打印机步骤)...
  9. 关于《error: 函数“int main(void)”已有主体》的错误
  10. Adobe CC 2015全系列产品下载 PS DW AE等 附注册机补丁
  11. 真实性能大揭秘 热门移动显卡横向测试
  12. ccf认证--201809-1 卖菜(100分)
  13. 【Python黑科技】lxml库爬虫实战-爬取句子控的名人名言句子(保姆级图文+实现代码)
  14. 如何处理“WLAN没有有效的IP配置”这一问题?
  15. IT 界惊现文豪!华为领导及阿里 P10 遭吐槽!
  16. Qt之QTableView的使用
  17. 用c++实现俄罗斯方块(免费版)
  18. 孩子好动爱疯跑就是感统失调吗?不一定!
  19. idea中jar包关联源码
  20. SAP:物料主数据增强

热门文章

  1. mysql带LIKE 关键字的查询
  2. golang操作mysql
  3. 在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则。
  4. 去除字符串中指定字符
  5. springboot中使用mybatis
  6. linux iptables 详解
  7. 4.3. postForObject
  8. 基于rman 全备+归档在线搭建DG
  9. Saltstack 介绍、安装、配置(一)
  10. 怎么能打开AOPR的日志文件