constructor inheritance

Simen Kjaeraas simen.kjaras at gmail.com
Tue Mar 4 13:13:46 PST 2008


On Tue, 04 Mar 2008 21:59:35 +0100, Elwis <elwispl at gmail.com> wrote:

> Ary Borenszweig Wrote:
>
>> Elwis wrote:
>> > I might have described my problem unclearly.
>> >
>> > I has root class and it has some constructor. One of those just calls  
>> one of its methods. I'd like not to copy declaration of this  
>> constructor in all of its children.
>>
>> Do you mean you don't want to have to do this?
>>
>> class Parent {
>>
>>    this(int x, int y) {
>>      // some code
>>    }
>>
>> }
>>
>> class Child : Parent {
>>
>>    // I wish the compiler would add the this(int x, int y) constructor
>>    // automatically for me here
>>
>> }
>
> It doesn't work. Maybe it isn't supported by GDC?


It is not supported by D at all. At least not at the moment. Like I said,  
your best bet is templates.
Something like

template constructors()
{
	this()
	{
		// do stuff here
	}
	
	this(int x, int y)
	{
		// do stuff here
	}
}

class Parent
{
	mixin constructors;
}

class Child
{
	mixin constructors;
}



More information about the Digitalmars-d mailing list