Re: how do I create an array of objects as member of class?

2015-06-30 Thread Assembly via Digitalmars-d-learn

On Friday, 26 June 2015 at 22:14:56 UTC, Adam D. Ruppe wrote:

On Friday, 26 June 2015 at 21:50:30 UTC, Assembly wrote:

class Baa {
  Foo a = new Foo();
  Foo b = new Foo();
  Foo[] l = [a,b];


I wasn't aware about this. I'm used to have static only when I 
request so, like using static keyword in each member that must be 
static. Gonna move it to the constructor.


Keep in mind that those instances are *static* and probably not 
what you expect; modifying a will be seen across all instances 
of Baa unless you actually assign it to a new member.



I know this works:


Doing it in the constructor is really the best way.


Gonna do so, thanks



Re: how do I create an array of objects as member of class?

2015-06-26 Thread Adam D. Ruppe via Digitalmars-d-learn

On Friday, 26 June 2015 at 21:50:30 UTC, Assembly wrote:

class Baa {
  Foo a = new Foo();
  Foo b = new Foo();
  Foo[] l = [a,b];


Keep in mind that those instances are *static* and probably not 
what you expect; modifying a will be seen across all instances of 
Baa unless you actually assign it to a new member.



I know this works:


Doing it in the constructor is really the best way.


how do I create an array of objects as member of class?

2015-06-26 Thread Assembly via Digitalmars-d-learn

Imaginary code:

class Foo { }
class Baa {
  Foo a = new Foo();
  Foo b = new Foo();
  Foo[] l = [a,b];
}

What should I use instead of to it work? Array!Foo(a,b) didn't 
worked either.


I know this works:

class Baa {

Foo a = new Foo();
  Foo b = new Foo();
Foo[] l;

this() {
 l = [a,b];
}

But I'd like to initializa it at declaration time