On 10/21/2015 11:14 PM, DarkRiDDeR wrote:
Hello. I have a class:

abstract class Addon
{
     public activate(){...}
     ...
}

its children:

class A: Addon {... }
class B: Addon {... }

How do I create an array of subclasses Addon? For example, one could to
do so:

T[2] addons = [new A(), new B()];
foreach(T addon; addons){
     addon.activate();
}



This works:

abstract class Addon {
    public void activate() {
    }
}

class A: Addon {}
class B: Addon {}

void main() {
    Addon[2] addons = [new A(), new B()];
}

This works too:

    Addon[] addons = [new A(), new B()];

I am happy to report that even the following works with dmd 2.069.0-b2:

    auto addons = [new A(), new B()];

I think the last one used to not work. Apparently now their "common type" is inferred correctly.

Ali

Reply via email to