Nested sibling classes
seany
seany at uni-bonn.de
Thu Jan 12 17:05:04 UTC 2023
Please Consider the code:
import std.stdio;
class a {
public:
this(){}
~this(){}
class b {
public:
this.outer.c C = new this.outer.c();
this() {
writeln(this.C.i);
}
~this() {}
}
class c {
public:
this() {}
~this() {}
int i = 10;
}
}
int main () {
int [int][int] test;
test[0][20] = 19;
writeln(Test[0][20]);
a A = new A();
a.b B = a.new a.b();
return 0;
}
Compiling with dmd tells me:
`test.d(12): Error: undefined identifier `` this.outer.c `` ` (i
used two backticks, but i can't seem tobe escaping the backtick
character correctly in this forum)
On fish shell we have:
❯ dmd --version
DMD64 D Compiler v2.101.2
Copyright (C) 1999-2022 by The D Language Foundation, All Rights
Reserved written by Walter Bright
If i remove the "this.outer" and just write, c C = new c(); then
i have:
`test.d(12): Error: cannot construct nested class ` c ` because
no implicit ` this ` reference to outer class ` a ` is available`
How can I make it, that classes b and c can access each other,
and create instances of each other freely? Thank you.
More information about the Digitalmars-d-learn
mailing list