Objekt erzeugen



  • Hallo,

    Ich habe folgendes Problem: Ich habe eine Klasse CDia, welche CDialog als Basisklasse hat. Wenn ich nun in einer anderen Klasse ein Objekt erzeugen will
    (CDia test;)
    dann bekomme ich folgende Fehlermeldungen:
    error C2146: syntax error : missing ';' before identifier 'store'
    error C2501: 'CDia' : missing storage-class or type specifiers
    error C2501: 'test' : missing storage-class or type specifiers

    Von anderen Klassen kann ich ohne Probleme Objekte erstellen.
    z.B CDialog test; oder eine andere von mir geschriebene Klasse funktionieren.

    Kann mir vielleicht jemand verraten, woran das liegt bzw. wie ich das ändern kann. Scheinbar muss die Klasse ja irgendwelche Besonderheiten haben 😕

    Gruss und Dank schonmal
    Micha



  • Du musst nur die Headerdatei deiner Klasse einbinden ...



  • Die Headerdatei der Klasse ist eingebunden. Wie gesagt klappt es ja auch mit einer anderen von mir erstellten Klasse



  • hast du sie auch an der richtigen stelle geschrieben.

    Das macht einen unterschied



  • Das #include habe ich oben hingeschrieben, wo die anderen Sachen auch schon included werden. Die Erzeugung des Objekes steht in der H-Datei nach Class ...
    public:

    Muss es woanders hin? Wo? Sonst hat es so funktioniert.



  • Du musst sie vor die eigentlich Klasse schreiben.

    Bsp:

    # include "CEinzubindene.h"
    # include "Cbestehende.h"
    


  • darf ich raten: du willst das objekt in der headerdatei deklarieren?!

    Esco



  • Micha81 schrieb:

    Das #include habe ich oben hingeschrieben, wo die anderen Sachen auch schon included werden. Die Erzeugung des Objekes steht in der H-Datei nach Class ...
    public:

    Muss es woanders hin? Wo? Sonst hat es so funktioniert.

    aaah jezz lese ichs: ich habe richtig getippt! 🙂

    Esco

    moment, ich such kurz den threat, wo's drinsteht, wie's geht



  • hier hab ichs mal erklaert:
    http://www.c-plusplus.net/forum/viewtopic.php?t=89923&highlight=

    du musst bevor du das objekt in der header erstellst:

    CDialogklasse m_oDialog;
    

    noch

    class CDialogklasse;
    

    davorschreiben.

    die headerdatei des dialogs musst du dabei nicht in der header stehen, wo du die dialogfeldklasse instanziierst.

    waere uebrigens nett, wenn ein admin das in die FAQ linken koennte.

    Esco


Anmelden zum Antworten