Is it possible to set this on null?

Koroskin Denis 2korden at gmail.com
Wed Aug 6 11:11:13 PDT 2008


On Wed, 06 Aug 2008 22:05:48 +0400, BCS <ao at pathlink.com> wrote:

> Reply to Zarathustra,
>
>> class CFoo{
>> public void destroy(){ delete this; } // ok
>> public void forget(){ this = null; }   // ok but no effect
>> }


In fact, this should be disallowed (and it is in c++).

>
> that doesn't work because this is a hidden arg to the function, you can  
> change its value but as with any other local value that doesn't effect  
> the value used to call the function.
>
>> void
>> main(){
>> auto l_fooA = new CFoo;
>> auto l_fooB = l_fooA;
>> l_fooA.forget; // no effect
>> l_fooA = null;  // now ok
>> l_fooB.destroy;  // ok }
>>
>


More information about the Digitalmars-d-learn mailing list