ich arbeite mich derzeit in Qt ein, bin momentan dabei ein wenig mit den Elementen eines Hauptfensters zu experimentieren.
Ich habe ein Hauptfenster erstellt und widme mich jetzt der Erstellung der Menubar. Die Menubar hinzuzufügen mit allerlei Aktionen funktioniert, jedoch würde ich jetzt aus Gründen der Übersichtlichkeit die einzelnen Menus direkt als eigene Klasse machen (also dass z.B. das Datei-Menu eine eigene Klasse ist, in der direkt alle Funktionen implementiert sind).
Ich habe also eine Klasse FileMenu von QMenu abgeleitet:
Code: Alles auswählen
class FileMenu : public QMenu
{
Q_OBJECT
public:
FileMenu(const QString, QMenu *parent = 0);
~FileMenu();
private:
QAction *newFile;
QAction *openFile;
QAction *saveFile;
QAction *saveFileAs;
QAction *closeFile;
QAction *quitProg;
};
Nun möchte ich in der Klasse des Hauptfensters (MainWindow) einen entsprechenden Zeiger auf die neue Klasse FileMenu anlegen:
Code: Alles auswählen
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
~MainWindow();
private:
FileMenu *fileMenu;
Wenn ich das jedoch dem Kompiler serviere, gibts nur folgende Fehlermeldung:
ISO C++ forbids declaration of 'FileMenu' with no type
expected ';' before '*' token
So wie ich die Fehlermeldung interpretiere, erwartet er einen Typ für den Zeiger. Aber stellt nicht die abgeleitete Klasse FileMenu einen Typen auf eben jene Klasse dar, so wie z.B. bei QMenu *menu das QMenu der Typ des Zeigers ist.
Kann mir da mal jemand eine Erklärung dazu abliefern?
MfG und Danke