C++ 对象模型

---- 本文心得来自《深入理解C++对象模型》


C++类的存储模型

在C++模型中,非静态成员变量存放在类的实例中,静态成员变量、静态成员函数和非静态成员函数被存在类的实例外,虚函数的存储原则如下:

  1. 每个类会产生一堆指向虚函数的指针,以表格的形式存放,称为virtual table(vtbl)
  2. 每个类的实例都有一个指针,指向该类的虚表,称为vptr。Vptr的设定和重置都是由每个类的构造函数、析构函数和拷贝赋值自动完成。每个类所关联的type_info实例也被指出来,放在虚表的第一个slot处。

(未完待续...)

 

Some tips about C++ Point

指向不同类型的指针,他们的区别在于根据他们所指向类型的不同,教导编译器如何解释某个特定地址中的内存内容和大小。因此void*的指针指向的内存只能还有一个地址。转型(cast)其实是一种编译器指令,大部分情况下它并不该笔那一个指针所含有的真正地址,它只影响“被指出之内存的大小和其内容”的解释方式。

posted @ 2014-06-16 12:12  jiangnan_326  阅读(79)  评论(0编辑  收藏  举报