C++对象模型-在对象模型的尖端 第七章笔记
读完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++对象模型-在对象模型的尖端 第七章笔记相关推荐
- 基本IO接口技术——微机第七章笔记
基本I/O接口技术--微机第七章笔记 文章目录 基本I/O接口技术--微机第七章笔记 前言 MindMap 并行通信和串行通信 通信 基本方法 并行通信 优点 串行通信 特点 并行接口概述 硬件结构( ...
- C语言学习-翁凯(第七章笔记)
C语言学习-翁凯(第七章笔记) 第七章 7.1.1初见函数 素数求和 int m,n;int i;int cnt=0;int sum=0;scanf("%d %d",&m, ...
- 鸟哥Linux私房菜:第七章笔记
第七章:Linux磁盘与文件系统管理 7.1 认识Linux文件系统 文件系统特性 Linux的Ext2文件系统 1. data block 2. inode table 3. Superblock ...
- Python程序设计基础第七章笔记:字符串
Python程序设计基础笔记 目录 Python程序设计基础笔记 第七章:文本处理(一):字符串 7.1 字符串编码格式简介 7.2 转义字符与原始字符串 7.3 字符串格式化 7.3.1 使用 % ...
- 软件项目管理第七章笔记---人力资源管理
以下图片及内容整理自西安交通大学软件学院宋永红老师的ppt(课堂回放)中,仅供学习使用,请勿转载或他用 笔记汇总:软件项目管理笔记汇总_Qlz的博客-CSDN博客 第七章 人力资源管理 人力资源是第一 ...
- 机器学习第七章笔记——利用AdaBoost元算法提高分类性能
目录 引言 一. 基于数据集多重抽样的分类器 1.1 bagging:基于数据随机重抽样的分类器构建方法 1.2 boosting 二. 训练算法 三.基于单层决策树构建弱分类器 四.完整AdaBoo ...
- python从入门到实践笔记_Python编程从入门到实践二至七章笔记
Python 第二章变量和简单数据类型 一. 改变字符大小写 1. 首字母大写 .title() 或者 .capitaliza() 输入: print("xiao ming!".t ...
- 计算机组成原理第七章笔记---输入输出
本文内容整理自西安交通大学软件学院李晨老师的课件,仅供学习使用,请勿转载 计算机组成原理系列笔记汇总:计算机组成原理笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目 ...
- 操作系统第七章笔记---进程同步
本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载 操作系统系列笔记汇总:操作系统笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目录 思维导 ...
最新文章
- 【转】做正确的事情,等着被开除(Do the right thing, Wait to get fired)
- [zz]libvirt中CPU和内存的细粒度管理机制
- js数组去重的四种方法
- 中大型网站技术架构演变过程
- 图像传感器与信号处理——详解CCD与CMOS图像传感器
- Java黑皮书课后题第8章:*8.31(几何:交点)编写一个方法,返回两条直线的交点。四个点存放在4*2的二维数组points中。编写一个程序,提示用户输入4个点,并显示交点
- django-动漫节目列表,后台的操作
- 客户端能不等四次挥手就强制关闭 TCP 连接吗?
- 网络(9)-HTTPS协议
- 系统学习机器学习之参数方法(一)
- 【晶体管电路设计】五、渥尔曼电路设计
- 【Matlab元胞自动机】元胞自动机地铁火灾疏散模型【含源码 246期】
- 谷歌大神 Jeff Dean 的那些“惊人真相”
- lan和adsl是什么信号_路由器上的adsl是什么意思【图】
- 智能灯丝灯方案为复古设计注入“ 科技基因 ”
- JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器
- rk3288[android 6.0] 调试串口修改为普通串口
- 解决Ubuntu Linux终端输入命令没有颜色提示的设置方法
- MATLAB中的set函数
- 相亲时, 如何向 TA 解释区块链? | 春哥区块链创业记
热门文章
- OpenCV实现角点检测(cornerHarris)
- Vue项目中常见问题(23)动态展示Floor组件
- Verilog HDL设计方法
- Matlab:向图中添加注释
- CSS代码常用代码以及前端图片代码
- Map与Json之间的转换(fastjson)
- 2021计组和微计-背下来就能拿分的知识总结
- R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用bgcolor函数自定义指定可视化图像的背景色
- C语言实现万年历(附代码) 小白完成的第一个C语言程序,希望大家多多关注,点赞
- 引入函数库c语言,C语言标准函数库分析