Re: Virtual Classes?

2016-08-17 Thread Basile B. via Digitalmars-d-learn
his() {internal = new Internal;} alias internal this; } class Bar: Foo { void stuff() {"derived".writeln;} } void main(string[] args) { Foo f = new Bar; f.stuff(); // "base", not "derived". } ° From what i've read, "virtual classes" respect the OOP principles.

Re: Virtual Classes?

2016-08-17 Thread Meta via Digitalmars-d-learn
On Thursday, 18 August 2016 at 02:55:49 UTC, Basile B. wrote: On Thursday, 18 August 2016 at 02:51:48 UTC, Meta wrote: On Thursday, 18 August 2016 at 00:49:49 UTC, Engine Machine wrote: https://en.wikipedia.org/wiki/Virtual_class Can D do stuff like this naturally? Yes, D's `alias this` feat

Re: Virtual Classes?

2016-08-17 Thread Basile B. via Digitalmars-d-learn
On Thursday, 18 August 2016 at 02:51:48 UTC, Meta wrote: On Thursday, 18 August 2016 at 00:49:49 UTC, Engine Machine wrote: https://en.wikipedia.org/wiki/Virtual_class Can D do stuff like this naturally? Yes, D's `alias this` feature supports this. https://dlang.org/spec/class.html#alias-thi

Re: Virtual Classes?

2016-08-17 Thread Meta via Digitalmars-d-learn
On Thursday, 18 August 2016 at 00:49:49 UTC, Engine Machine wrote: https://en.wikipedia.org/wiki/Virtual_class Can D do stuff like this naturally? Yes, D's `alias this` feature supports this. https://dlang.org/spec/class.html#alias-this

Re: Virtual Classes?

2016-08-17 Thread Basile B. via Digitalmars-d-learn
On Thursday, 18 August 2016 at 00:49:49 UTC, Engine Machine wrote: https://en.wikipedia.org/wiki/Virtual_class Can D do stuff like this naturally? Not naturally. The ancestor must be specified for the inner "virtual class": °°° class Foo { class Internal

Virtual Classes?

2016-08-17 Thread Engine Machine via Digitalmars-d-learn
https://en.wikipedia.org/wiki/Virtual_class Can D do stuff like this naturally?