读完C++对象模型书后,做一个笔记整理
第一章-关于对象
第二章-构造函数语义学
第三章-Data语义学
第四章-Function语义学
第五章-构造拷贝解析语义学
第六章-执行期语义学
第七章-在对象模型的尖端

template

  • 编译器看到template class声明时什么也不会做。必须经过具现后才能使用其中变量。
  • 若声明一个template class具现类型的指针后,也是什么也没有。因为指针不需要触发对象的具现。
  • 如果一个virtual function 被具现出一其具现点紧跟在其class具现点之后

异常处理

  • throw语句会抛出内建类型或自定义类型的异常

  • catch子句用于处理某种类型的异常,在大括号中提供处理程序

  • try子句包含着可能抛异常的代码

  • 异常触发后,控制权会从函数调用中被释放,此时堆栈中每个调用函数都将推离unwinding the stack,推离前局部对象变量会析构。随后进行到程序栈的下一个函数中去继续运行。

  • 在异常触发后,若之前有资源的加锁操作,并不会自动释放。需手动处理,或利用局部对象的析构来自动完成资源锁的释放。

Runtime Type Identification RTTI

  • RTTI对那些展现多态的类型有效,一般是在虚函数表中第一个位置放置指向RTTI的指针
  • 对于指针可以 xx* ptr= dynamic_cast<xx*>(tmp);返回0则代表转换失败,非0为成功。
  • 对于引用fct& rf=dynamic_cast<fct&>(rt);若失败会抛出bad_cast_exception的异常
  • 对于内建类型和非多态类型type_info是静态取得,而非执行期获得。且是在需要时才产生。

在DLL变化后,二进制不兼容会要求必须重新编译使用者代码
如果DLL中含有虚函数,则除非每次DLL都被加载到相同内存位置(实际位置由runtime linker决定),否则虚函数将引发各种问题。因为在调用者代码中vtb中的虚函数地址是固定的。

下一篇 第一章-关于对象

C++对象模型-在对象模型的尖端 第七章笔记相关推荐

  1. 基本IO接口技术——微机第七章笔记

    基本I/O接口技术--微机第七章笔记 文章目录 基本I/O接口技术--微机第七章笔记 前言 MindMap 并行通信和串行通信 通信 基本方法 并行通信 优点 串行通信 特点 并行接口概述 硬件结构( ...

  2. C语言学习-翁凯(第七章笔记)

    C语言学习-翁凯(第七章笔记) 第七章 7.1.1初见函数 素数求和 int m,n;int i;int cnt=0;int sum=0;scanf("%d %d",&m, ...

  3. 鸟哥Linux私房菜:第七章笔记

    第七章:Linux磁盘与文件系统管理 7.1 认识Linux文件系统 文件系统特性 Linux的Ext2文件系统 1. data block 2. inode table 3. Superblock ...

  4. Python程序设计基础第七章笔记:字符串

    Python程序设计基础笔记 目录 Python程序设计基础笔记 第七章:文本处理(一):字符串 7.1 字符串编码格式简介 7.2 转义字符与原始字符串 7.3 字符串格式化 7.3.1 使用 % ...

  5. 软件项目管理第七章笔记---人力资源管理

    以下图片及内容整理自西安交通大学软件学院宋永红老师的ppt(课堂回放)中,仅供学习使用,请勿转载或他用 笔记汇总:软件项目管理笔记汇总_Qlz的博客-CSDN博客 第七章 人力资源管理 人力资源是第一 ...

  6. 机器学习第七章笔记——利用AdaBoost元算法提高分类性能

    目录 引言 一. 基于数据集多重抽样的分类器 1.1 bagging:基于数据随机重抽样的分类器构建方法 1.2 boosting 二. 训练算法 三.基于单层决策树构建弱分类器 四.完整AdaBoo ...

  7. python从入门到实践笔记_Python编程从入门到实践二至七章笔记

    Python 第二章变量和简单数据类型 一. 改变字符大小写 1. 首字母大写 .title() 或者 .capitaliza() 输入: print("xiao ming!".t ...

  8. 计算机组成原理第七章笔记---输入输出

    本文内容整理自西安交通大学软件学院李晨老师的课件,仅供学习使用,请勿转载 计算机组成原理系列笔记汇总:计算机组成原理笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目 ...

  9. 操作系统第七章笔记---进程同步

    本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载 操作系统系列笔记汇总:操作系统笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目录 思维导 ...

最新文章

  1. 【转】做正确的事情,等着被开除(Do the right thing, Wait to get fired)
  2. [zz]libvirt中CPU和内存的细粒度管理机制
  3. js数组去重的四种方法
  4. 中大型网站技术架构演变过程
  5. 图像传感器与信号处理——详解CCD与CMOS图像传感器
  6. Java黑皮书课后题第8章:*8.31(几何:交点)编写一个方法,返回两条直线的交点。四个点存放在4*2的二维数组points中。编写一个程序,提示用户输入4个点,并显示交点
  7. django-动漫节目列表,后台的操作
  8. 客户端能不等四次挥手就强制关闭 TCP 连接吗?
  9. 网络(9)-HTTPS协议
  10. 系统学习机器学习之参数方法(一)
  11. 【晶体管电路设计】五、渥尔曼电路设计
  12. 【Matlab元胞自动机】元胞自动机地铁火灾疏散模型【含源码 246期】
  13. 谷歌大神 Jeff Dean 的那些“惊人真相”
  14. lan和adsl是什么信号_路由器上的adsl是什么意思【图】
  15. 智能灯丝灯方案为复古设计注入“ 科技基因 ”
  16. JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器
  17. rk3288[android 6.0] 调试串口修改为普通串口
  18. 解决Ubuntu Linux终端输入命令没有颜色提示的设置方法
  19. MATLAB中的set函数
  20. 相亲时, 如何向 TA 解释区块链? | 春哥区块链创业记

热门文章

  1. OpenCV实现角点检测(cornerHarris)
  2. Vue项目中常见问题(23)动态展示Floor组件
  3. Verilog HDL设计方法
  4. Matlab:向图中添加注释
  5. CSS代码常用代码以及前端图片代码
  6. Map与Json之间的转换(fastjson)
  7. 2021计组和微计-背下来就能拿分的知识总结
  8. R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用bgcolor函数自定义指定可视化图像的背景色
  9. C语言实现万年历(附代码) 小白完成的第一个C语言程序,希望大家多多关注,点赞
  10. 引入函数库c语言,C语言标准函数库分析