view test/classes4.d @ 31:2841234d2aea trunk

[svn r35] * Attributes on struct fields/methods now work * Updated object.d to 1.021 * Added -novalidate command line option. this is sometimes useful when debugging as it may let you read the .ll even if it's invalid.
author lindquist
date Thu, 04 Oct 2007 16:44:07 +0200
parents c53b6e3fe49a
children d9d5d59873d8
line wrap: on
line source

class A
{
    int i = 42;
    double df = 3.1415;
    this()
    {
    }
    char[] toString()
    {
        return "A:Object";
    }
}

class B : A
{
    ubyte b;
    char[] toString()
    {
        return "B:A";
    }
}

void main()
{
    scope a = new A;
    char[] as = a.toString;
    {printf("a.toString = '%.*s'\n", as.length, as.ptr);}

    Object o = a;
    char[] os = o.toString;
    {printf("o.toString = '%.*s'\n", os.length, os.ptr);}

    scope b = new B;
    char[] bs = b.toString;
    {printf("b.toString = '%.*s'\n", bs.length, bs.ptr);}
}