展开全部

主编推荐语

深入研究GCC中的C++对象模型。

内容简介

本书基于GCC/Clang编译器深入讲解C++对象模型的相关知识,涵盖C++对象的内部工作原理及底层的汇编实现机制。

本书先介绍对象模型的基本概念,并引入两个用于研究C++代码实现的开源工具一cppinsights和Compiler Explorer。

接着,依次讲解C++数据语义学,即编译器如何布局C++对象模型中的数据成C++函数语义学,包括编译器如何实现C++中的多态、如何调用虚函数等;C++构造、析构语义学,涉及编译器对C++对象的构造和析构方式,包括全局对象和静态局部变量的构造等内容;

C++异常处理,包括GCC中异常处理的实现方式及实践准则;C++运行时类型识别(RTTI)的实现原理,包括dynamic_cast算法的具体实现;C++Name Mangling规则,包括GCC对C++代码中各个名称的编码方式。

目录

  • 版权信息
  • 内容提要
  • 推荐语
  • 前言
  • 资源与支持
  • 第1章 概述
  • 第2章 工具
  • 2.1 使用cppinsights
  • 2.2 使用Compiler Explorer
  • 2.3 总结
  • 第3章 数据语义学
  • 3.1 数据成员布局
  • 3.1.1 基本概念
  • 3.1.2 POD
  • 3.1.3 非POD
  • 3.1.4 由Point3d说起
  • 3.2 继承与数据成员
  • 3.2.1 单继承非多态
  • 3.2.2 单继承多态
  • 3.2.3 多继承
  • 3.2.4 虚拟继承
  • 3.3 数据成员的存取
  • 3.4 指向成员变量的指针
  • 3.4.1 单继承下指向成员变量的指针
  • 3.4.2 多继承下指向成员变量的指针
  • 3.5 总结
  • 第4章 函数语义学
  • 4.1 C++函数决议
  • 4.1.1 名称查找
  • 4.1.2 重载决议
  • 4.2 虚表构造
  • 4.2.1 虚表布局
  • 4.2.2 虚表构造
  • 4.3 成员函数的调用方式
  • 4.3.1 静态成员函数
  • 4.3.2 非静态成员函数
  • 4.4 虚成员函数的调用方式
  • 4.4.1 多继承下的虚成员函数
  • 4.4.2 虚拟继承下的虚成员函数
  • 4.5 指向成员函数的指针
  • 4.5.1 单继承场景下指向成员函数的指针
  • 4.5.2 多继承场景下指向成员函数的指针
  • 4.6 总结
  • 第5章 构造、析构语义学
  • 5.1 对象构造
  • 5.1.1 构造虚表
  • 5.1.2 子对象构造
  • 5.1.3 一次性构造
  • 5.1.4 对象数组构造
  • 5.2 对象析构
  • 5.2.1 子对象析构
  • 5.2.2 对象数组析构
  • 5.3 全局对象构造与析构
  • 5.4 总结
  • 第6章 异常处理
  • 6.1 C++异常的约定
  • 6.1.1 栈展开
  • 6.1.2 异常处理程序
  • 6.1.3 基本ABI
  • 6.1.4 C++ ABI
  • 6.2 GCC中C++异常的实现
  • 6.2.1 eh_frame
  • 6.2.2 eh_frame_hdr
  • 6.2.3 gcc_except_table
  • 6.2.4 C++异常执行过程
  • 6.3 现代C++中的异常介绍
  • 6.4 C++异常的处理
  • 6.4.1 异常安全类型
  • 6.4.2 C++异常处理的最佳实践
  • 6.5 总结
  • 第7章 运行时类型识别
  • 7.1 RTTI布局
  • 7.2 typeid操作符
  • 7.3 dynamic_cast算法
  • 7.4 总结
  • 第8章 Name Mangling规则
  • 8.1 基本概念
  • 8.2 操作符的编码
  • 8.3 一些特殊函数和实体的编码
  • 8.4 类型编码
  • 8.5 表达式编码
  • 8.6 作用域编码
  • 8.7 lambda表达式编码
  • 8.8 压缩
  • 8.9 总结
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。