www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.dwt - Anonomous class instances

reply Bill Baxter <dnewsgroup billbaxter.com> writes:
I see a lot of this in the DWT examples:

    new class() Listener { ... }

Didn't even know you could do that till I saw it in DWT.  But I just now 
ran across an example like this:

    new class Listener { ... }

Is there a difference?  If I had to guess I'd say the first one was 
creating a no-argument anonymous class template, but I have no idea why 
you'd want that instead of a regular anonymous class.

--bb
Apr 06 2008
parent reply Frank Benoit <keinfarbton googlemail.com> writes:
Bill Baxter schrieb:
 I see a lot of this in the DWT examples:
 
    new class() Listener { ... }
 
 Didn't even know you could do that till I saw it in DWT.  But I just now 
 ran across an example like this:
 
    new class Listener { ... }
 
 Is there a difference?  If I had to guess I'd say the first one was 
 creating a no-argument anonymous class template, but I have no idea why 
 you'd want that instead of a regular anonymous class.
 
 --bb

I think they are the same. The () is the optional arguments list to the ctor call.
Apr 06 2008
next sibling parent John Reimer <terminal.node gmail.com> writes:
On Sun, 06 Apr 2008 19:18:23 +0200, Frank Benoit wrote:

 Bill Baxter schrieb:
 I see a lot of this in the DWT examples:
 
    new class() Listener { ... }
 
 Didn't even know you could do that till I saw it in DWT.  But I just
 now ran across an example like this:
 
    new class Listener { ... }
 
 Is there a difference?  If I had to guess I'd say the first one was
 creating a no-argument anonymous class template, but I have no idea why
 you'd want that instead of a regular anonymous class.
 
 --bb

I think they are the same. The () is the optional arguments list to the ctor call.

I thought the '()' were required in D. I think I was getting errors when I removed the parenthesis. Otherwise, it would make sense to drop them. -JJR
Apr 06 2008
prev sibling parent Bill Baxter <dnewsgroup billbaxter.com> writes:
Frank Benoit wrote:
 Bill Baxter schrieb:
 I see a lot of this in the DWT examples:

    new class() Listener { ... }

 Didn't even know you could do that till I saw it in DWT.  But I just 
 now ran across an example like this:

    new class Listener { ... }

 Is there a difference?  If I had to guess I'd say the first one was 
 creating a no-argument anonymous class template, but I have no idea 
 why you'd want that instead of a regular anonymous class.

 --bb

I think they are the same. The () is the optional arguments list to the ctor call.

That makes sense. Now that I think about it, there wouldn't be much sense in making a template out of a class that will only ever have one instance. --bb
Apr 06 2008