On Saturday, 28 December 2019 at 22:12:38 UTC, Johan Engelen
wrote:
What Mike is saying is that `Base` has one `b` member variable,
but `Derived` has two (!).
```
writeln(d.b); // false
writeln(d.Base.b); // true (the `b` member inherited from Base)
```
-Johan
That makes sense. I think the c
On Saturday, 28 December 2019 at 20:47:38 UTC, Mike Parker wrote:
On Saturday, 28 December 2019 at 20:22:51 UTC, JN wrote:
import std.stdio;
class Base
{
bool b = true;
}
class Derived : Base
{
bool b = false;
}
void main()
{
// 1
Base b = new Derived();
writeln(b.b); // true
On Saturday, 28 December 2019 at 20:22:51 UTC, JN wrote:
import std.stdio;
class Base
{
bool b = true;
}
class Derived : Base
{
bool b = false;
}
void main()
{
// 1
Base b = new Derived();
writeln(b.b); // true
// 2
Derived d = new Derived();
writeln(d.b); // false
}
import std.stdio;
class Base
{
bool b = true;
}
class Derived : Base
{
bool b = false;
}
void main()
{
// 1
Base b = new Derived();
writeln(b.b); // true
// 2
Derived d = new Derived();
writeln(d.b); // false
}
Expected behavior or bug? 1) seems like a bug to me.