Verständnisproblem: Konstruktoraufruf CFileDialog schlägt fehl



  • Hallo,

    warum funktioniert die instanzierung auf diese Art nicht:

    Auszug aus Klassenheader:

    CFileDialog m_FileDialog ( false,  NULL,  NULL,  0);
    

    Ich erhalte die Fehlermeldung:
    c:\projekte\pctestneu\flashcardio\pcflashdlg.h(27) : error C2059: Syntaxfehler : 'constant'

    false und NULL sollten doch bekannt sein, oder täusche ich mich da.

    hmm, funktioniert wenn ich es lokal in de Funktion mache einwandfrei, aber wieso nicht als Objekt (Membervariable) ?

    Gruss

    F.



  • Der Aufruf des Konstruktors gehört nicht in den Header sondern in (bzw. "über") den Konstruktor der Klasse.

    PS: So in etwa:

    DeineKlasse::DeineKlasse()
    	: CBasisKlasse(dies, das)
    	, m_FileDialog ( false,  NULL,  NULL,  0)
    {
    


  • Dann haben sie (m_FileDialog) aber nicht als Membervariable - das war eigentlich meine Frage, wieso das net funktioniert, bzw nur bei Standard-Konstruktoren ohne Argumente funktioniert.



  • Du deklarierst CFileDialog als Member in DeineKlasse:

    CFileDialog m_FileDialog;
    

    und fügst den Code von estartu im Konstruktor hinzu. Dann hast Du genau das, was Du wolltest.



  • Leider nicht, nochmal - deine Deklaration schlägt beim Kompilieren fehl, da MFC anmeckert es gibt keinen geeigneten Standardkonstruktor...



  • Zeig bitte mal deinen Code, so wie du ihn nun angepasst hast. Header und cpp.


Anmelden zum Antworten