解释类的地址偏移量

来源:互联网 发布:JAVA aix屏幕 编辑:程序博客网 时间:2024/05/21 09:55
class A1 

public: 
virtual void Test(){} 
}; 


class A2 : public A1 

public: 
virtual void Test(){} 
}; 


class A3 : public A1 

public: 
virtual void Test(){} 
}; 


class A : public A2, public A3 

}; 


DWORD dw1, dw2, dw3, dw4; 
dw1 = (DWORD)((A *)8);  //dw1 = 0x08 
dw2 = (DWORD)((A3 *)(A *)8);  //dw2 = 0x0c 
dw3 = (DWORD)((A1 *)(A3 *)(A *)8);  //dw 3= 0x0c 
dw4 = (DWORD)((A1 *)(A3 *)(A *)8) - 8;//dw4 = 4