view tests/mini/classes6.d @ 906:f1ed7fe85138

Casts from interface to class generally need to be dynamic. Fixes #189.
author Christian Kamm <kamm incasoftware de>
date Sun, 25 Jan 2009 12:35:11 +0100
parents 6aaa3d3c1183
children
line wrap: on
line source

module classes6;
extern(C) int printf(char*, ...);

class C
{
    void f()
    {
        printf("world\n");
    }
}

class D : C
{
    void f()
    {
        printf("moon\n");
    }
}


extern(C)
{
    void srand(uint seed);
    int rand();
}

import ldc.intrinsics;

void main()
{
    C c;
    srand(readcyclecounter());
    if (rand() % 2)
        c = new C;
    else
        c = new D;
    c.f();
}