Membervariable vom Typ einer eigenen Klasse
-
Halli hallo, da bin ich mal wieder.
Also ich wollte eine Membervariable deklarieren, die vom Typ CMyClass ist. Aber der meckert jetzt irgendwie. Muss ich dann in der Headerdatei auch noch die andere Headerdatei einbinden, oder geht das generell nicht?
-
doch, das geht
class MyClass { ... ... }; int main() { MyClass myclass; ... ... }
edit: wenn du die class in einem anderen header hast, musste den natürlich #includen
-
das ist mir auch bewusst, dass das so geht. Aber Membervariablen werden ja in der Headerdatei deklariert.
#if !defined(AFX_PERSONALITY_H__E59B1949_5CBC_4C55_85AB_AB5DBE308059__INCLUDED_) #define AFX_PERSONALITY_H__E59B1949_5CBC_4C55_85AB_AB5DBE308059__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // Personality.h : Header-Datei // ///////////////////////////////////////////////////////////////////////////// // Satzgruppe CPersonality class CPersonality : public CRecordset { public: CPersonality(CDatabase* pDatabase = NULL); DECLARE_DYNAMIC(CPersonality) // Feld-/Parameterdaten //{{AFX_FIELD(CPersonality, CRecordset) long m_ID; CString m_Name; CString m_Vorname; CString m_Hobby; //}}AFX_FIELD // Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(CPersonality) public: virtual CString GetDefaultConnect(); // Standard-Verbindungszeichenfolge virtual CString GetDefaultSQL(); // Standard-SQL für Satzgruppe virtual void DoFieldExchange(CFieldExchange* pFX); // RFX-Unterstützung //}}AFX_VIRTUAL // Implementierung #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. #endif // AFX_PERSONALITY_H__E59B1949_5CBC_4C55_85AB_AB5DBE308059__INCLUDED_
und jetzt will ich eine Variable
CMyClass m_myVar;
einrichten. Und da bringt er mir immer einen Fehler.
-
Du musst vor
class CPersonality : public CRecordset
noch das einfügen:
#include "MyClass.h"
Warscheinlich hast du das in der .cpp Datei gemacht, das musst du aber direkt in der .h Datei machen.