Этот код:
class C { int opAdd(C b) { return 1; } private int j; } void main() { C a; C c; int j = a + c; }
Выдает:
"object.Exception: Access Violate - Read at address 0x0"
Классы в D являются ссылочными типами.Вам необходимо создать их экземпляр:
C a = new C(); C b = new C();
Также, opAdd был заменен на opBinary!"+" в D2 (см. Перегрузка оператора D2 ).
opAdd
opBinary!"+"