Array of subclasses
DarkRiDDeR via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Oct 22 06:29:04 PDT 2015
On Thursday, 22 October 2015 at 12:24:05 UTC, Maxim Fomin wrote:
> On Thursday, 22 October 2015 at 11:02:05 UTC, DarkRiDDeR wrote:
>>
>> This variant works strangely. Example:
>>
>> abstract class Addon
>> {
>> public string name = "0";
>> }
>> class Users: Addon
>> {
>> override
>> {
>> public string name = "USERS";
>> }
>> }
>> static final class Core
>> {
>> static:
>> public Addon[] activated;
>> public Users users;
>>
>> public void activate()
>> {
>> users = new Users;
>> activated = [new Users, new Users];
>> }
>> }
>>
>> Core.activate();
>> writeln(Core.users.name ~ "\n" ~ Core.activated[1].name);
>>
>> Out:
>> USERS
>> 0
>
> First of all, the code does not compile with override. It is
> impossible to override a data. Override should be removed.
> The reason it works this way is that the first access is to
> base class data while the second is to the derived data member.
I don't need the base class data. How to create a array of
subclasses objects with the derived data members?
More information about the Digitalmars-d-learn
mailing list