On 2/3/11 10:29 AM, Steven Schveighoffer wrote:
On Thu, 03 Feb 2011 03:43:43 -0500, Jonathan M Davis
<jmdavisp...@gmx.com> wrote:

On Thursday 03 February 2011 00:38:08 Jacob Carlborg wrote:
On 2011-02-03 07:21, Jonathan M Davis wrote:
> On Wednesday 02 February 2011 21:26:00 Mandeep Singh Brar wrote:
>> Hi,
>>
>> Is there a method to access this reference of the container class
>> from an inner class. i.e.
>> class A {
>> class B {
>>
>> methodM() {
>>
>> callAnotherM(A::this or A.this);
>>
>> }
>>
>> }
>> }
>
> The outer class is referenced via the property outer. However, if the
> inner class is static, then it has no such property and is not tied
to a
> specific instance of the outer class. In such a case, it can access
the
> private members of an instance of the outer class, but it's not
tied to
> an particular instance. Non-static inner classes (like yours above),
> however, _are_ tied to a particular instance of the outer class, and
> they have the outer property which is the this of the outer class.
>
> - Jonathan M Davis

Just to add a note, you have to access the property via "this":

this.outer

That, I did not know. But I've never actually used an inner class in D
thus far.
I just read what TDPL says on it, and obviously I missed that point.
Thanks.

I have noticed that, is that a bug? I always thought it strange, since
outer is a keyword, that you need to do this.outer.

-Steve

I don't think outer is a keyword.

Reply via email to