Greetings to all...

There are nested classes as below. But beware, there's also inheritance, extra! If you construct ```Bar b``` from main(), it's okay. But if declare the constructor in Foo(), the program crashes with a segmentation error.

Is this not legal? Like two mirrors are facing each other, that I do?

```d
class Foo
{
    Bar b;
    int i;

    this(int n)
    {
        this.i = n;
        //this.b = new Bar(this.i); // compiles but crashes
    }

    class Bar : Foo
    {
        int i;

        this(int n)
        {
            this.i = n;
            super(this.i);
        }

    }
}

void main()
{
    auto foo = new Foo(1);
    auto bar = foo.new Bar(1);
    foo.b = bar;

    assert(foo.i == foo.b.i);
}
```
SDB@79

Reply via email to