On Friday, 4 January 2019 at 11:27:59 UTC, Alex wrote:
On Friday, 4 January 2019 at 09:58:59 UTC, bauss wrote:
[...]
As for the OP, I think here the usefulness of ", D" should be
visible:
[...]
class B : A, D
{
override int foo() { return 2; }
}
[...]
D d = cast(D) b;
assert(d.foo == 2); // returns 2
If I remove the ", D" the program segfaults in this line:
Program received signal SIGSEGV, Segmentation fault.
0x000000000042c184 in D main () at ggg.d:26
26 d.foo();
(gdb) p d
$1 = (ggg.D *) 0x0
There is clearly an
assert (d);
missing in the source. But why is d a null reference in the first
place?