this pointer

Zarathustra adam.chrapkowski at gmail.com
Wed Oct 21 14:16:48 PDT 2009


Steven Schveighoffer Wrote:

> On Wed, 21 Oct 2009 16:53:20 -0400, Zarathustra  
> <adam.chrapkowski at gmail.com> wrote:
> 
> > Why value of pointer to this is different in global function, member  
> > function and constructor?
> > //---------------------------------------------------------------------------------------------------
> > module test;
> > class Foo{
> >   this(){
> >     writefln("ctor 0x%08X", cast(dword)&this);
> >   }
> >
> >   void func(){
> >     writefln("func 0x%08X", cast(dword)&this);
> >   }
> > }
> > import std.stdio;
> >
> > void main(){
> >     Foo foo = new Foo;
> >     writefln("main 0x%08X", cast(dword)&foo);
> >     foo.func();
> > }
> > //---------------------------------------------------------------------------------------------------
> > sample output:
> > ctor 0x0012FEC8
> > main 0x0012FEE8
> > func 0x0012FEB8
> 
> &this is the address of the pointer itself (local function argument on the  
> stack), not what it points to.  you want cast(void *)this.
> 
> -Steve

Thank's a lot. God blesses C++ for the '->' operator ;)



More information about the Digitalmars-d-learn mailing list