Seite 1 von 2
vererbung von eigenen Klassen
Verfasst: 2. Juni 2006 15:03
von darmstadt
Ich kann von meine eigene Klasse Datei mit der Klasse DateiData nicht erben:
class Datei{
private:
QString name;
public:
Datei(QString _url);
}
class DateiData : public Datei
{
int getMin(void);
};
...
int DateiData::getMin(void){
return 1;
}
Damit krige ich:
declaration of `float DateiData::getMin()' outside of class is not definition
Es ist mir völlig unklar was das soll!!
Vielen Dank
Verfasst: 2. Juni 2006 15:46
von jaegermeister
Hi
Wenn du jetzt nicht nur beim Reinkopieren vergessen hast, dann fehlt hinter deiner Klasse Datei das semikolon
Verfasst: 2. Juni 2006 15:49
von darmstadt
Das:
int DateiData::getMin(void){
return 1;
}
ist in meiner cpp Datei. Aber danke
Verfasst: 2. Juni 2006 15:51
von darmstadt
Das:
int DateiData::getMin(void){
return 1;
}
ist in meiner cpp Datei. Aber danke
Verfasst: 2. Juni 2006 16:17
von darmstadt
Weiss wirklich niemand warum es nicht geht?
Verfasst: 2. Juni 2006 16:21
von darmstadt
Bei der Vererbung von nicht-Qt Klassen, gibt es etwas was man achten muss?
Muss die Klasse von der geerbt wird selber von QObject erben?
Verfasst: 2. Juni 2006 16:25
von Christian81
jaegermeister hat doch gesagt was es ist - 'Wenn du jetzt nicht nur beim Reinkopieren vergessen hast, dann fehlt hinter deiner Klasse Datei das semikolon'
Ach ja. ausserdem gibt es das
Verfasst: 2. Juni 2006 16:41
von darmstadt
Was ist mit code - Tag gemeint?
Verfasst: 2. Juni 2006 16:44
von Cartman
In deinem Forumbeitrag kannst Du "
Code: Alles auswählen
" (es gibt auch einen Knopf dazu) deinem Problemcode voranstellen. Dann ist er besser lesbar für die anderen Forumsteilnehmer. Mehr nicht.
Verfasst: 2. Juni 2006 16:45
von darmstadt
Sehr gut vielen Dank.
Schade dass niemand mein Problem lösen kann (Christian wohl auch nicht).
Verfasst: 2. Juni 2006 16:50
von Cartman
Was sich hier jeder wünscht ist, daß du explizit sagst, daß nach der letzten geschweiften Klammer ein Semikolon bei dir im Code steht (was in deinem oben veröffentlichten Text nicht zu sehen ist):
Code: Alles auswählen
class Datei{
private:
QString name;
public:
Datei(QString _url);
}; // <----- hier muß ein Semikolon hin, welches bei dir oben nicht steht!!!
Verfasst: 2. Juni 2006 16:59
von darmstadt
Achso tut mir leid. Es ist meiner Schuld, ich dachte es wäre klar gewesen, dass der semicolon am Ende einer Header-Datei ist. Also:
Header Datei von Datei:
Code: Alles auswählen
class Datei{
private:
QString name;
public:
Datei(QString _url);
}
Header Datei von DateiData:
Code: Alles auswählen
class DateiData : public Datei
{
public:
DateiData(QString _url);
int getMin(void);
};
cpp-datei von DateiData
Code: Alles auswählen
DateiData::DateiData(QString _url) : Datei(_url)
{
}
int DateiData::getMin(void)
{
return 1;
}
...
Verfasst: 2. Juni 2006 17:07
von Christian81
Und nochmal - im Header von 'Datei' ist kein Komma nach der Klassendeklaration. Ist das nur durch Copy'n'Paste passiert oder fehlt es bei Dir im Header?
Verfasst: 2. Juni 2006 17:08
von Cartman
An deiner Stelle würde ich mal deine Source-Codes als Attachement an dein Posting anhängen. Man kann auch
http://pastebin.de/ zum Veröffentlichen von Textdateien verwenden.
Verfasst: 6. Juni 2006 09:08
von darmstadt
Es ist nur durch Copy'n'Paste passiert. Ist es sonst richtig?