本书基于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++代码中各个名称的编码方式。
本书适合有意深入理解C++对象模型、了解C++代码底层实现的读者阅读。阅读本书需要具备一定的C++基础知识。
展开