On Saturday, 15 April 2023 at 14:17:19 UTC, Vijay Nayar wrote:
I believe if you do initialization at the class declaration
level, then every instance of the class shares the same
instance, e.g.:
```
class Var {}
class MyClass {
Var var = new Var();
}
void main() {
MyClass c1 = new MyClass();
MyClass c2 = new MyClass();
assert(c1.var is c2.var);
}
```
I should have made it clear that want a single shared default
object. Your code above solves that problem. So does
```
Var defaultObj;
static this() { defaultObj = new Var(); }
```
By wrapping the new variable and the constructor call to
initialize it in MyClass, you eliminate the need to call the
constructor, which is what I want, but now you add the need to
call another constructor. So for my purposes this is just moving
the problem of null to another place.