idontlikespam at nospam.com
Sat Feb 10 15:32:25 PST 2007
Frits van Bommel a écrit :
> A reference in D is different from a reference in C++. If you take the
> address of a reference in D, you do not get the address of the object
> referenced, but the address of the reference itself.
> Think of a D reference as a pointer to the body of the class, with small
> differences. For one, casting between references works differently. For
> another, pointer arithmetic doesn't work on references. But operators
> like (unary) & work the same: in this case, it returns a pointer to the
> memory storing the address being referred to.
> To get the address of the object from a reference you can cast it to
> void*. So in your case, replace "&this" with "cast(void*)this" and you
> will see the same address everywhere.
Thank you very much :)
More information about the Digitalmars-d-learn