define UpperClass(address, type, field) ((type *)( (PCHAR)(address) - (ULONG_PTR)(&((type *)0)->field)))
class myClass {
int howToShareIt;
public:
class subClass {
public:
operator int() {
myClass p = UpperClass(this, myClass, overloadedClass);
return p.howToShareIt;
}
subClass& operator=(int rhs)
{
myClass* p = CONTAINING_RECORD(this, myClass, overloadedClass);
p.howToShareIt = rhs;
return *this;
}
};
subClass overloadedClass;
};
UpperClass above is CONTAINING_RECORD. I am trying to change it so it treats myClass p as reference
but not a pointer. I would like to use it as reference so I would write
p.howToShareIt rather than p->howToShareIt.
I would not use -> but I would use simple dot sign ".".
How to do this?
Is it possible to treat class by reference but not a pointer?