Consider the following, totally contrived, code. The compiler tells me:
tst39.d(21): Error: constructor tst39.B.this(string s)
is not callable using argument types ()
tst39.d(21): constructor tst39.B.this
hides base class function tst39.A.this
tst39.d(21): add alias this = tst39.A.this
to tst39.B
's body to merge the overload sets
But I haven't yet found a way to use this guidance to resolve the error. I can add this to B:
this() {
super():
}
But I'm curious if there's a working example of getting this effect with the compiler-recommended alias usage? My searches here and on the Duck have come up empty.
class A {
int a;
this() {
this.a = 1;
}
}
class B : A {
string b;
this(string s) {
super();
this.b = s;
}
}
void
main() {
import std.stdio : writeln;
auto a = new A();
auto b1 = new B();
auto b2 = new B("Hi, Mom!");
writeln(b1.a, " - ", b1.b);
writeln(b2.a, " - ", b2.b);
}