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.