How do you initialize a class instance which has static storage within another class?
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Jan 30 14:01:44 PST 2016
On 30.01.2016 22:52, Enjoys Math wrote:
>
> class A { static B b; } class B {}
>
> doing b = new B() does NOT work.
>
> Nor could I create a this() {} at module level
It works when you make b const/immutable:
class A {static immutable B b = new B;} class B {}
If you want/need b to be mutable, you can use a static constructor
(`static this`), either in the class or the module:
class A {static B b; static this() {b = new B;}} class B {}
class A {static B b;} static this() {A.b = new B;} class B {}
You could also set it in `main` or another function that runs before b
is used, of course.
More information about the Digitalmars-d-learn
mailing list