Hi,
I wanted to know, if there is guarantee that a specific variable is
always the same number of bytes forward than the beginning of the
struct/class. Example:
class MyClass
{
....
int var;
};
....
// somewhere we create one object
MyClass obj;
....
// somewhere else we create other object
MyClass *obj2=new MyClass;
....
// check the distance from the beginning of structure
int diff1=int( ((char*)&obj.var) - ((char*)&obj) );
int diff2=int( ((char*)&obj2->var) - ((char*)obj2) );
if(diff1 == diff2 )
{
// it's the same distance
}
Can I always assume, that diff1 == diff2, no matter how MyClass
structures are created? Even if they have multiple inheritance and
other "advanced" features?
Specifically, I want to know the answer for Visual C++ 2003, and
SunStudio.
Thanks in advance,
Julek