 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Horst Kraemer Guest
|
Posted: Wed Sep 17, 2003 8:51 pm Post subject: Re: gleichnamige member in Basis und Ableitung |
|
|
On 17 Sep 2003 05:35:51 GMT, [email]Bernd.Wutzelmann (AT) wutzelmann (DOT) com[/email] (Bernd
Wutzelmann) wrote:
| Quote: | Mal 'ne Frage zu folgendem Code:
#include
class A
{
public:
int m_i;
};
class B : public A
{
private:
int m_i;
};
int main( int argc, char *argv[] )
{
std::cout << (int)sizeof(A) << " " << (int)sizeof(B);
return 0;
}
Ich hatte mal gelesen, dass die Redefinition eines Members mit
gleicher Signatur unter unterschiedlichen Zugriffsrechten in
einer abgeleiteten Klasse nur die Zugriffsrechte auf den Mem-
ber im Basisklassen-Anteil aendert - allerdings ist das schon
lange her und das Buch wo ich das gelesen hatte war sicher
noch lange vor dem 98er Standard verlegt worden. Obiges zeigt
mir mit einigen Compilern, dass dem nicht so ist (auch wenn
ich mich theoretisch darauf nicht 100%ig verlassen kann weil
B kein POD ist). Weiss einer wie die Sache nach ISO-Standard
definiert ist?
|
Nach dem aktuellen Standard ist B::m_i ein neues Element der Klasse B,
das nichts mit dem Element A::m_i zu tun hat. Dabei verdeckt die neue
Deklaration die alte. Der Zugriff auf A::m_i muss explizit ueber
myB.A::m_i
bzw. innerhalb von B mit
A::m_i
erfolgen. Das, was Deine alte Spezifikation beschreibt, kann man per
class B: public A
{
private:
A::m_i;
};
erreichen - was allerdings nicht allzuviel Sinn ergibt.
MfG
Horst
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Ralf Schneeweiß Guest
|
Posted: Sat Sep 20, 2003 11:18 pm Post subject: Re: gleichnamige member in Basis und Ableitung |
|
|
....
| Quote: |
erfolgen. Das, was Deine alte Spezifikation beschreibt, kann man per
class B: public A
{
private:
A::m_i;
};
erreichen - was allerdings nicht allzuviel Sinn ergibt.
|
Verlangt der ANSI/ISO-Standard an dieser Stelle nicht die Verwendung von
using?
Grüße
Ralf
www.oop-trainer.de
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Horst Kraemer Guest
|
Posted: Mon Sep 22, 2003 5:50 pm Post subject: Re: gleichnamige member in Basis und Ableitung |
|
|
On Sun, 21 Sep 2003 01:18:57 +0200, "Ralf Schneeweiß"
<ralf.schneeweiss (AT) onlinehome (DOT) de> wrote:
| Quote: | ...
erfolgen. Das, was Deine alte Spezifikation beschreibt, kann man per
class B: public A
{
private:
A::m_i;
};
erreichen - was allerdings nicht allzuviel Sinn ergibt.
Verlangt der ANSI/ISO-Standard an dieser Stelle nicht die Verwendung von
using?
|
Er verlangt nicht, aber er empfiehlt.
MfG
Horst
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|