subclassing
Jesse Phillips
jessekphillips+D at gmail.com
Tue Nov 2 07:39:27 PDT 2010
I'll come back with a more complete answer latter, but first.
spir Wrote:
> * I wrote Range as class, but I rather meant an interface. D does not let me do that, apparently because there is no data slot in a D interface. Is then an interface a kind of data-less superclass? Or is there something I misunderstand?
Interfaces describe what can something of that type can do, not what it has. Data fields are not allowed only function signatures and functions that perform local modifications.
> auto range = ...;
> while (range.continues) {
> doSomethingWith(range.element);
> range.step();
> }
Note that you are not actually using a Range as it is defined by D. In fact it is exactly the same, but named differently, here is what D's range interface looks like.
> auto range = ...;
> while (!range.empty) {
> doSomethingWith(range.front);
> range.popFront();
> }
More information about the Digitalmars-d-learn
mailing list