Array of derived class objects?

H. S. Teoh hsteoh at quickfur.ath.cx
Tue Mar 6 11:27:56 PST 2012


Code:

	// test.d
	class A {}
	class B : A {}
	class C : A {}
	void main() {
		A[] objs = [ new B, new C ];	// line 6
	}

Compiler error:

	test.d(6): Error: cannot implicitly convert expression (new B) of type test.A to test.C
	test.d(6): Error: cannot implicitly convert expression ([(__error),new C]) of type C[] to A[]

I thought D was supposed to automatically infer the most derived common
base class to assign to an array literal of different types? At least,
that's the impression I got from TDPL.

What am I doing wrong?


T

-- 
MAS = Mana Ada Sistem?


More information about the Digitalmars-d-learn mailing list