现在的位置: 首页 > 综合 > 正文

深入对象模型——笔记(三)

2013年09月03日 ⁄ 综合 ⁄ 共 697字 ⁄ 字号 评论关闭

members scope resolution rules:

对member functions的分析,会直到整个class的声明都出现后才开始。因此,X()返回的x,是class::x。对于member functions的argument list 在第一次遭遇就被决议(resolved)。因此,member functions的length就决议为int。当后续再有nested typedef出现时,把稍早的绑定标识为非法。所以,_val 为 float。

static data members

每个static data member只有一个实体,存放在data segment中。取其地址,为数据类型的指针,而不是class member指针。如 const int*。

nonstatic data member

直接存放在每个class object中,经由class object存取。origin._y的地址为&origin + (&origin::_y - 1).data member的指针其offset总被加上1,以区分没有指出任何member的情况。

class的subobject的data member也直接出现在object 内存中,其offset在编译时期即可获知

 

 

 

抱歉!评论已关闭.