Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [C++] Die Headerdatei-Einbindung macht mich ganz verrück

  Alt 9. Nov 2007, 20:34
Hallo,

hm, ich habe in der main() folgenden Code, um die Instanz von CHochschule zu erzeugen:

Code:
CHochschule hs;
hs.SemesterBeginn();
Nun brauche ich in der CPruefungsamt.h einen Pointer auf diese Instanz, um auf diese zugreifen zu können. Das ist das, was ich erreichen möchte. Da CHochschule.h jedoch in der stdafx.h eingebunden ist, ist CHochschule in der CPruefungsamt.h bekannt (Das kann ich auch überprüfen, indem ich in dieser Headerdatei das hier eingebe: "CHochschule::". Da popt dann das Fenster mit den Methoden auf, was mir zeigt, dass CHochschule bekannt ist. Daher brauche ich hier keine Vorwärtsdeklaration.).

Der Fehler wird jedoch in der CPruefungsamt.h durch diese Zeile ausgelöst:

Code:
CHochschule *hochschule;
Daher kann es doch eigentlich keine Konflikte geben, erst recht nicht, was die Deklaration von CHochschule anbelangt. ich weiß auch nicht, was diese eine Zeile mit den Headerdateien anstellen möchte, das dürfte doch keine Auswirkungen darauf haben.

Nachtrag: Mit der Vorwärtsdeklaration funktioniert das wirklich, danke. Doch das kann ich mir absolut nicht erklären. Kann man dies nicht auch ohne diese lösen?
Nachtrag 2: Ich vermute, dass die CPruefungsamt.cpp, die stdafx.h einbindet, vor der CPruefungsamt.h durchlaufen wird, weshalb CPruefungsamt.h die Klasse CHochschule noch nicht kennt.
  Mit Zitat antworten Zitat