Seite 1 von 1

error: new types may not be defined in a return type

Verfasst: 28. Juni 2006 23:52
von kugelfisch
Hallo,

ich bin neu hier und bin auch gerade erst dabei mich in QT einzuarbeiten. Meine C++-Kenntnisse sind leider auch eher mager.

Ich habe das dockwidgets-Beispiel soweit angepasst, das es den Verzeichnisbaum in einem Dock anzeigt (QTreeView/QDirModel). Funktioniert soweit auch ganz gut.

Jetzt wollte ich QTreeView überschreiben, um ein bischen was anzupassen. Aber sobald ich den Header in das mainwindow.cpp einbinde, bekomme ich die Fehlermeldung:

Code: Alles auswählen

mainwindow.cpp:30: error: new types may not be defined in a return type
mainwindow.cpp:30: error: return type specification for constructor invalid
Den Header der QTreeView -Ableitung habe ich jetzt soweit abgespeckt, daß eigentlich gar nichts mehr drin steht:

Code: Alles auswählen

#ifndef DIRECTORYVIEW_H_
#define DIRECTORYVIEW_H_

class QTreeView;


class DirectoryView : public QTreeView
{
	


	Q_OBJECT	
	
}



#endif /*DIRECTORYVIEW_H_*/
Was mache ich falsch?

Gruß
Alex[/code]

Verfasst: 29. Juni 2006 01:21
von jaegermeister
Abend
Du hast kein

Code: Alles auswählen

#include <QTreeView>
, wenn ich das richtig sehe.
oder machst du das in der cpp Datei?
Ich hab mir das Dockwidget Beispiel jetzt nicht angeguckt.

mfg jaegermeister

Verfasst: 29. Juni 2006 07:06
von kugelfisch
Hab ich vergessen, alledings tuts mit dem include auch nicht. Ich hab jetzt auch mal wieder einen Konstuktor definiert, komme aber dies gleiche Meldung.

Was soll mir die Meldung überhaupt sagen?

"new types may not be defined in a return type" - Was soll mir das sagen? Ich habe den neuen Typ ja einfach nur definiert und geben ihn niergens zurück!?

"return type specification for constructor invalid" - ich hab kein Rückgabewert in einem Constructor definiert!?


#ifndef DIRECTORYVIEW_H_
#define DIRECTORYVIEW_H_

#include <QTreeView>


class ADirectoryView : public QTreeView
{



Q_OBJECT


public:
ADirectoryView ( QWidget * parent);


}



#endif /*DIRECTORYVIEW_H_*/

Hier nocj der MainWindow-Contructor:

Code: Alles auswählen

#include <QtGui>

#include "mainwindow.h"
#include "adirectoryview.h"

MainWindow::MainWindow()
{
    textEdit = new QTextEdit;
    setCentralWidget(textEdit);

    createActions();
    createToolBars();
    createStatusBar();
    createDockWindows();

    setWindowTitle(tr("Dock Widgets"));

    newLetter();
}
Wenn ich den Include auf ADirectoryView rausmache, komipiert erst. Muß als schon in adirectoryview.a sein, oder?

p.s. Ich hab DirectoryView in ADirectoryView umbenannt

Verfasst: 29. Juni 2006 09:28
von Flachkoepper
Mahlzeit,

Wenn du deinen Code 1:1 gepastet hast, dann fehlt dein Seimkolon am Ende der Klassendeklaration...

Flachköpper

Verfasst: 29. Juni 2006 10:09
von kugelfisch
Flachkoepper hat geschrieben:Mahlzeit,

Wenn du deinen Code 1:1 gepastet hast, dann fehlt dein Seimkolon am Ende der Klassendeklaration...

Flachköpper
Oh mann, die hab ich vergessen. Ich kann's aber erst heute Abend ausprobieren - ich denke aber, daß es dann funktioniert.


Danke für eure Hilfe!

Gruß
Alex

Verfasst: 29. Juni 2006 11:36
von Christian81
Flachkoepper hat geschrieben:Wenn du deinen Code 1:1 gepastet hast, dann fehlt dein Seimkolon am Ende der Klassendeklaration...
Ich glaube da sollten wir ne FAQ von machen - was ist wenn der Compiler doofe Fehlermeldungen ausgibt? -> Man hat ein Semikolion am Ende der Klassendeklaration vergessen :)

Verfasst: 29. Juni 2006 11:41
von Flachkoepper
Gute Idee, und dann jeder die krudesten Fehlermeldungen da reinposten, die sein Compiler ausgespuckt hat. Wird bestimmt interessant.

Verfasst: 29. Juni 2006 13:05
von jaegermeister
Hi
für den GCC hab ich sowas schonmal gefunden gehabt. Aber irgendwann weiß man ja woran es liegt

Verfasst: 29. Juni 2006 21:10
von kugelfisch
Also das wars - vielen Dank nochmal!