Kagamin Wrote: > Denis Koroskin Wrote: > > > class Widget > > { > > WidgetFactory* factory = &defaultFactory; > > } > > > > void main() > > { > > Widget w = new Widget(); > > writefln(w.factory.someParameterValue); // prints 14 > > } > > You initialize member field here. It's usually done in instance constructor. > > class Widget > { > WidgetFactory factory; > this(){ factory = defaultFactory; } > }
I don't agree with you. If so, then why we have the following syntax allowed: class Foo { int i = 42; } if we could just use class Foo { this() { i = 42; } } ? Imagine you have lots of ctors (with different arguments), should you put i = 42; into every one? Or move it into some initialize() method? Don't you think it is too verbose?