读书笔记:深度探索C++对象模型

该书是C++作者之一Lippman的心得之作,可以了解C++很多背后的故事,也可以更好的理解面向对象。Lippman同时也是C++ Primer的作者。

第一章:关于对象,印象比较深的是C++类的内存布局介绍,以及从继承,多态等角度比较了不同的内存布局。

第二章:构造函数语义学

  • 第一部分,有4种情况,编译器会构造出有用的默认构造函数。
    • 带有默认构造函数的类成员
    • 带有默认构造函数的基类
    • 带有虚函数的类,会初始化额外的指针(vptr)指向virtual function table(vtbl)
    • 带有虚基类的类,会初始化额外的指针(__vbcX)指向虚基类
  • 第二部分,类似,分4种情况,编译器会构造默认的copy constructor
  • 第三部分,介绍了初始化时编译器可能会做的优化
  • 第四部分,介绍了构造函数的成员初始化列表