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