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.


Anmelden zum Antworten