On Saturday, 22 March 2025 at 03:35:35 UTC, Andy Valencia wrote:
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:


When you add an empty constructor, the code still runs without an error

```d
class Counter : StaticCounter {
    string msg;

    this(string str) { msg = str; }
    this() {} // added Salih
}

class StaticCounter {
    static int id;
    this() { ++id; }
}

import std.stdio : writeln;
void main() {
    with ( new Counter() )
        id.writeln(": ", msg);

    with ( new Counter("Hi, Mom!") )
        id.writeln(": ", msg);
}
```

SDB@79

Reply via email to