www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - "Class.this" equivalent ?

reply Dan <ddaglas gmail.com> writes:
All,

How can I access a reference to an enclosing class in D? ... something similar
to the following Java code:

class A {
  class B {
    A ref;
    B() { ref = A.this; }
  }
}
Jan 02 2007
parent reply Alexander Panek <a.panek brainsware.org> writes:
Dan wrote:
 All,
 
 How can I access a reference to an enclosing class in D? ... something similar
 to the following Java code:
 
 class A {
   class B {
     A ref;
     B() { ref = A.this; }
   }
 }

You can use the *outer* keyword to access the class wrapping a nested class. Like: class Outer { class Inner { Outer foo() { return this.outer; } } void bar() { Inner i = new Inner; assert(this == i.foo()); } }
Jan 02 2007
parent Dan <ddaglas gmail.com> writes:
== Quote from Alexander Panek (a.panek brainsware.org)'s article
 Dan wrote:
 All,

 How can I access a reference to an enclosing class in D? ... something similar
 to the following Java code:

 class A {
   class B {
     A ref;
     B() { ref = A.this; }
   }
 }

Like: class Outer { class Inner { Outer foo() { return this.outer; } } void bar() { Inner i = new Inner; assert(this == i.foo()); } }

Thanks. --Dan
Jan 02 2007