Base class' constructor is not implicitly inherited for immutable classes. A bug or a feature?

arturg via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jul 20 16:21:32 PDT 2017


On Wednesday, 19 July 2017 at 16:00:56 UTC, Piotr Mitana wrote:
> Hello, I have this code:
>
> immutable class Base
> {
> 	this() {}
> }
>
> immutable class Derived : Base {}
>
> void main()
> {
> 	new immutable Derived();
> }
>
> I'd like class Derived to automatically inherit the default 
> constructor from Base. However, this is not the case:
>
> main.d(6): Error: class main.Derived cannot implicitly generate 
> a default ctor when base class main.Base is missing a default 
> ctor
>
> Is it a bug or it should be like this?

compiles with:
dmd 2.073

fails with:
dmd 2.074
dmd 2.075


More information about the Digitalmars-d-learn mailing list