Steven Schveighoffer Wrote: > On Wed, 21 Oct 2009 16:53:20 -0400, Zarathustra > <adam.chrapkow...@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 ;)