Weird behavior of "this" in a subclass, I think?
seashell86 via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jul 15 17:18:30 PDT 2015
So I've been mostly just toying around with D as it seems like it
will end up being a strong language for game development both now
and even moreso in the future. That being said, I'm perplexed by
using this code and not receiving the result I would imagine.
Here is the source code of a basic "sandbox.d" file:
import std.stdio;
class Animal {
string voice;
void speak() {
writeln(this.voice);
}
}
class Dog : Animal {
string voice = "Whoof!";
}
int main() {
auto a = new Animal();
auto d = new Dog();
a.speak(); // Prints ""
d.speak(); // Prints "" instead of "Whoof!"
return 0;
}
I know that C++ behaves this way. However, Dlang impresses me by
having a very "no duh" approach to things where this type of
example seems very "no duh." Anyways, please be gentle as I am
hardly what most would consider a "skilled" programmer and, as
such, was something I wanted to bounce off the pros :)
More information about the Digitalmars-d-learn
mailing list