Schlüsselwort "class"



  • Hi!
    In einem Code habe ich folgende Struktur entdeckt:

    class A;
    class B;
    
    class MyClass:: public C {....
                             };
    

    Inwiefern sind jetzt die Klassen A und B mit MyClass verknüpft?

    thx,
    Iso



  • Gar nicht. Das sind lediglich Vorwärtsdeklarationen.



  • Edit:Schon wieder zu spät. 🤡

    So wie es aussieht: Gar nicht. Das was du da siehst sind reine Forward-Deklaration. Heißt nichts weiter, das du die Klassen A und B für deine MyClass bekanntgemacht hast.



  • Gar nicht.
    Das ist lediglich eine Deklaration der Klassen A und B. Du sagst somit, dass es bestimmt eine Definition einer Klasse, namens A und B geben wird.
    Damit kannst du, ohne die Definition zu kennen Zeiger auf A und B in C speichern, oder als Parameter für Funktionen angeben, ohne, dass der Compiler dir einen Fehler gibt.

    Wenn du A und B aber benutzen willst, dann müssen die Definitionen bekannt sein. Üblicherweise includest du dann in der Quelldatei (.cpp) die Header von A und B.
    So kannst du eben Abhängigkeiten vermeiden. Dem Header ist egal, wie die Implementierung von A und B aussieht, weil das auch nicht wichtig ist.


Anmelden zum Antworten