Johannes Schaub (litb)
Alf said:[Re-posted to comp.lang.c++ because Johannes had redirected follow-ups to
comp.lang.c++, thus removing my reply from comp.programming. Johannes:
DON'T DO THAT, and please don't snip a statement and replace with your own
saying the same, as if it hadn't been said. Those are not-nice discussion
* Johannes Schaub (litb), on 11.09.2010 17:53:Officially, it's called hiding.
Yes, I mentioned that in the very next paragraph (not quoted).
These two have different meanings.
Redefinition occurs for class names. In particular, for typedef names
that are declared in a scope where there is also a class declared. The
class name is redefined (instead if being hidden) by the typedef
declaration to be then a typedef name that refers to that class.
No, "redefinition" is just an informal descriptive term. It means what it
says, no more or less. E.g. in the standard it's also used about
redefining a freestanding function, and in Stroustrup's TCPPPL 2nd ed. the
index entry for redefinition points to a discussion of redefinition of an
Looks like you are right. It says also "Unless redefined in the derived
class, members of a base class are also considered to be members of the
derived class." but I personally dislike this usage. "redefined" to
"redeclared" should have the same relationship as "defined" to "declared"
has. But in this case, it does not seem to be the case, because "redeclared"
has a very specific non-collegial meaning.