On Tue, 02 Nov 2010 16:35:39 -0400, spir <[email protected]> wrote:

On Tue, 02 Nov 2010 12:33:16 -0400
Jesse Phillips <[email protected]> wrote:

spir Wrote:


> * Why does D allow me redefining (data) slots in the subclass OddSquares, which exist in the superclass? (I did this first without noting, by copy & paste ;-)

This is either a bug or so that you don't have name clashes with all the super classes (could really reduce the available names).

I have name clashes, that's what I meant with "redefining". Test case:

class SC {int i;}
class C : SC {int i;}

compiles. If this (non-)behaviour of the compiler is not intended for a good reason, then it may be considered a bug. At least, we should get a warning, don't you think? Also, this is anyway bad design and goes against the fact that in D (and OO in general), class features are precisely identified by name... See also, bug below.

The behavior is intentional. It's similar to C++ behavior. Usually, you only do it with private members which are not accessible to the derived class.

-Steve

Reply via email to