Instanz einer Klasse in einer Klasse -> Error???



  • Ich versuche seit ein paar Tagen folgendes erfolglos:
    Win32 Applikation (keine MFC), habe alle Funktionen (create window WndProc, etc) in eine Klasse "MyMainClass" getan. (Files:

    MyMainClass.cpp und MyMainClass.h)
    Nun habe ich eine zweite Klasse z.b. PrintFunktionen (PrintFunc.cpp und PrintFunc.h).
    Ich möchte nun in der Klasse MyMainClass eine Instanz der Klasse "PrintFunktionen" erstellen! In MyMainClass.cpp habe ich

    natürlich "PrintFunc.h" inkludiert.

    Doch Visual Studio meldet einen Fehler:
    i:\...\MyMainClass.h(37): error C2146: syntax error : missing ';' before identifier 'PrintFuncInstanz'
    i:\...\MyMainClass.h(37): error C2501: 'MyMainClass::PrintFunktionen' : missing storage-class or type specifiers
    i:\...\MyMainClass.h(37): error C2501: 'MyMainClass::PrintFuncInstanz' : missing storage-class or type specifiers

    Wie löse ich dieses Problem oder mache es richtig, falls meine Methode falsch war?



  • ein bisschen mehr Code würde nicht schaden...



  • MyMainClass.h :

    class MyMainClass
    {
    public:
    
    int a;
    void TimerInit(void);	
    
    static LRESULT	CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    PrintFunktionen PrintFuncInstanz; // <- Line 37
    
    };
    


  • class MyMainClass { 
    
         private:
         int a;
    
         public:
         void TimerInit();
         static LRESULT CALLBACK WndProc(HWND, UNIT, WPARAM, LPARAM);
         PrintFunktionen PrintFuncInstanz();
    
    };
    


  • Inkludiere die PrintFunc.h in MyMainClass.h statt in der cpp Datei.
    Ich hoffe Du hast einen Copy-Konstruktor in der PrintFunc klasse, da dieser
    aufgerufen wird wenn Du eine Instanz der Klasse per Value zurücklieferst.
    Es sei denn Du kommst mit dem Standard-Kopierkonstruktor aus!

    Gruss


Anmelden zum Antworten