abstract base class and class members

Jonathan M Davis jmdavisProg at gmx.com
Sun Mar 4 12:24:12 PST 2012


On Sunday, March 04, 2012 19:36:20 David wrote:
> Am 04.03.2012 19:22, schrieb H. S. Teoh:
> > On Sun, Mar 04, 2012 at 06:22:47PM +0100, Timon Gehr wrote:
> >> On 03/04/2012 06:16 PM, David wrote:
> >>> Is this intended behaviour? http://ideone.com/xrvvL
> >>> 
> >>> shouldn't the 2nd writeln print the same as the first, well at least the
> >>> same content of i?
> >> 
> >> This is intended behaviour. You have two distinct definitions of i.
> >> If you want to set i to 2 in the derived class, do so in the class
> >> constructor.
> > 
> > Yeah, only member functions can be overridden in the derived class (and
> > even then, D requires you to explicitly state that with the 'override'
> > keyword).
> > 
> > Makes one wonder, though... from an OO perspective, does it make sense
> > to have overridable non-function members? What semantics would (should)
> > that have?
> > 
> > 
> > T
> 
> Thanks for your answers.
> 
> Maybe we should also allow override for fields.

Variables can't be polymorphic, and it wouldn't make sense for them to be. 
Overidding is done to change behavior.

By the way, I wouldn't rely on much that ideone says about D at this point. 
It's still on version 2.042 of dmd, whereas the latest release is 2.058.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list