inner class



  • Hallo zusammen!

    Bin ich eigentlich in C++ selbst dafür verantwortlich, dass die Instanz einer internen Klasse auf die entsprechende Instanz der kapselnden äußeren Klasse zugreifen kann? Per Pointerübergabe z.B.? Angeblich sollen ja Typenangaben, statische Elemente und Methoden bekannt und nutzbar sein.

    Danke!

    Grüße,
    TS++



  • Was willst du mit diesem Pointer anfangen? Auf Typangaben sowie statische Members kannst du doch auch so zugreifen (sofern sie public sind). Verschachtelte Klassen können in C++ nicht mehr als andere, im Gegensatz zu inneren Klassen in Java.



  • Hallo Bashar!

    Also kann ich Methoden einer Instanz der äußeren Klasse niemals durch eine Instanz der inneren Klasse aufrufen lassen, wenn kein Pointer oder keine Referenz auf dieses äußere Objekt bekannt ist?!
    Kommt mir ehrlich gesagt etwas merkwürdig vor. Wenn man diversen Beiträgen im Netz Glauben schenken darf, so sind doch innere Klassen i.d.R. nicht nach außen bekannt. D.h. doch, dass ein Objekt so einer inneren Klasse nur durch eine Instanz der kapselnden Klasse erzeugt werden kann. Demzufolge müsste doch dann für jedes Objekt einer internen Klasse, ohne dass ich es vorgebe, feststehen, in welches Objekt die betroffene Instanz eingebettet ist.

    Grüße,
    TS++



  • TS++ schrieb:

    Also kann ich Methoden einer Instanz der äußeren Klasse niemals durch eine Instanz der inneren Klasse aufrufen lassen, wenn kein Pointer oder keine Referenz auf dieses äußere Objekt bekannt ist?!

    Genau.

    Kommt mir ehrlich gesagt etwas merkwürdig vor. Wenn man diversen Beiträgen im Netz Glauben schenken darf, so sind doch innere Klassen i.d.R. nicht nach außen bekannt.

    Mag sein. Na und? Wenn die innere Klasse einen Pointer auf die äußere Klasse braucht, dann gibt man ihr einen. Wenn sie keinen braucht, dann gibt man ihr keinen.



  • sehe ich auch so 👍
    _________________
    www.c-plusplus.net - Die Plattform für C++ler!



  • Gut, OK!
    Dann mach ich's halt so!

    Danke für deine Hilfe!

    Grüße,
    TS++



  • wenn sie im pulic teil definiert wird, ist sie auch nach aussen bekannt.



  • meine ich auch.
    als beispiel geb ich mal die iteratoren an.


Anmelden zum Antworten