Static Constructors
Steven Schveighoffer
schveiguy at yahoo.com
Sat Oct 4 11:08:49 PDT 2008
"Saaa" wrote
> Can I do something like this, or should I use the static constructor for
> this?
> If so, how should I set the first parameter:size ?
>
> Fruits fruit[];
typo, and you are using C-style array syntax (which works, but is
discouraged). This should be:
Fruit[] fruit;
Means, 'I declare an array of Fruit called fruit'
>
>
> class Fruit
> {
> this( parameters )
> {
> fruit[].length=fruit[].length+1;
> fruit[$-1]=this;
Don't do the [] operator, I think this may create a temporary array struct,
and would not affect the global variable at all:
fruit.length = fruit.length + 1;
But instead of this, it's probably better to write:
fruit ~= this;
Which does all that work for you :)
> }
> ..
> void stuff()
> {
> }
> ..
> }
>
> new fruit( .. );
> new fruit( .. );
>
> foreach (Fruit f; fruit)
> {
> f.stuff();
> }
This should work, but be aware that it's not thread safe if you are using
multiple threads.
-Steve
More information about the Digitalmars-d-learn
mailing list