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?