Hi guys,

below a small piece of code, which does not compile because "b" of type B can not be passed as ref parameter to incr(ref A a).

If I remove the ref, it works as expected, that is to say I can give a derived class as parameter. I have an idea why it does not work, but I think a c++ reference would work, ie incr(A& console) would accept a B as parameter. What the logic here?

Thanks

```
void main()
{
    import std.stdio: write, writeln, writef, writefln;

    class A
    {
        int i = 2;
    }

    class B : A
    {
        int j= 3;
    }

    void incr(ref A a)
    {
        writeln(a.i);
    }

    B b = new B();
    incr(b);

}
```

Reply via email to