Seite 1 von 1
[gelöst] base class `QSqlQuery' has incomplete type
Verfasst: 3. Oktober 2005 14:17
von ElwoodJ
Hallo,
ich habe mal wieder ein kleines Qt Problem. Ich würde gerne die Klasse QSqlQuery ergänzen um einige Methoden. Also würde ich gerne eine Ableitung der Klasse schreiben. Generell sollte das doch möglich sein oder?
Ich bekomme beim Kompilieren folgende Fehlermeldung
Was genau hat es damit auf sich? Hab schon gesucht und gesucht aber nichts brauchbares gefundenden.
Schon mal schönen Dank für alle Antworten.
Verfasst: 3. Oktober 2005 14:39
von Tarek
Hast du vielleicht das Q_OBJECT Makro vergessen? Poste am besten mal die gesamte Klassendekleration.
Verfasst: 3. Oktober 2005 18:04
von ElwoodJ
hm, das Makro ist drin.
Aber hier mal der Code und die Fehler beim Kompilieren
Header-Datei:
#ifndef QMYQUERY_H
#define QMYQUERY_H
class QSqlQuery;
class QMyQuery : public QSqlQuery
{
Q_OBJECT
public:
QMyQuery();
~QMyQuery();
};
#endif
Implementierung:
#include "qmyquery.h"
#include <QSqlQuery>
QMyQuery::QMyQuery(): QSqlQuery()
{
}
QMyQuery::~QMyQuery()
{
}
Kompilermeldungen:
In file included from qmyquery.cpp:2:
qmyquery.h:8: error: base class `QSqlQuery' has incomplete type
qmyquery.h:12: error: Syntaxfehler before `public'
qmyquery.h:8: Warnung: `class QMyQuery' only defines a private destructor and
has no friends
qmyquery.cpp:5: error: definition of implicitly-declared `QMyQuery::QMyQuery()'
qmyquery.cpp:5: error: declaration of `QMyQuery::QMyQuery()' throws different
exceptions
qmyquery.h:8: error: than previous declaration `QMyQuery::QMyQuery() throw ()'
qmyquery.cpp: In constructor `QMyQuery::QMyQuery()':
qmyquery.cpp:5: error: type `class QSqlQuery' is not a direct base of `QMyQuery
'
make: *** [qmyquery.o] Fehler 1
Verfasst: 3. Oktober 2005 18:24
von BartSimpson
lasse das
class QSqlQuery weg und nimm
#include <QtSql>
Verfasst: 3. Oktober 2005 18:30
von ElwoodJ
danke, das hat geholfen. Hab zwar noch nen Fehler aber immerhin konnte das Ganze nun weiter kompiliert werden.
Wenn ich nun #include <QtSql> im Sourcecode habe dann fügt er doch schon an der Stelle alles aus der Headerdatei ein oder? Ich dachte mit class wäre das sinnvoller, damit er einfach nur weiß dass es die andere Klasse gibt. Oder ist es doch anders?
Verfasst: 3. Oktober 2005 18:37
von BartSimpson
Im Prinzip schon. Aber wenn du was ableiten willst, muss der Compiler schon etwas mehr wissen:)
Verfasst: 3. Oktober 2005 18:39
von ElwoodJ
ok

leuchtet ein.
Danke für die schnelle Lösung.