Klassen und ihre Gültigkeiten

buschke

Mitglied
Hallo,
ich habe immernoch das Problem der Klassengültigkeit. Ich habe eine SDI-Anwendung erstellt und in der Dokumentenklasse testDoc.h eine neue Klasse deklariert durch:
class CLay
{
public:
bool m_ver;
bool m_hor;
bool m_apart;
CList<CString, CString> *m_LayList;
bool m_set;
};


und daraus ein CArray erstellt.
CArray<CLay, CLay> *m_LayArray;

nun möchte ich dieses CArray auch in einem Dialogfeld benutzen. Bei der Deklaration des Pointers in der Header-Datei des Dialogs
CArray<CLay, CLay> *m_MyLayArray;
treten Fehler auf, da die Klasse CLay nicht bekannt ist. Wie kann ich diese Klasse in allen Quelldateien sichtbar machen?

Danke, Buschke
 
Wenn die Klasse direkt verwendet wird (also nicht nur ein Pointer oder eine Referenz darauf), dann musst du davor die .h der Klasse includen.

Wenn du nur einen Pointer oder eine Referenz drauf hast, dann reicht eine Forward-Deklaration (class CLay;). Je weniger Header included werden, desto seltener kommt man in Überkreuz-Includierungs-Probleme. Allerdings muss dann in der .cpp-Datei die Header-Datei der Klasse inkludiert werden (sonst weiss der Compiler nix damit anzufangen).

[edit: Pfui Smiley]
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück