vererbung von eigenen Klassen

Alles rund um die Programmierung mit Qt
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

vererbung von eigenen Klassen

Beitrag 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
jaegermeister
Beiträge: 70
Registriert: 11. August 2004 07:44
Wohnort: Bergen auf Rügen
Kontaktdaten:

Beitrag von jaegermeister »

Hi
Wenn du jetzt nicht nur beim Reinkopieren vergessen hast, dann fehlt hinter deiner Klasse Datei das semikolon
Wie könnten ja wenn wir wollten, aber wie wollen ja nicht.
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag von darmstadt »

Das:
int DateiData::getMin(void){
return 1;
}

ist in meiner cpp Datei. Aber danke
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag von darmstadt »

Das:
int DateiData::getMin(void){
return 1;
}

ist in meiner cpp Datei. Aber danke
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag von darmstadt »

Weiss wirklich niemand warum es nicht geht?
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

code - Tag
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag von darmstadt »

Was ist mit code - Tag gemeint?
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

Beitrag 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.
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag von darmstadt »

Sehr gut vielen Dank.

Schade dass niemand mein Problem lösen kann (Christian wohl auch nicht).
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

Beitrag 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!!!
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag 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;
} 
...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

Beitrag 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.
darmstadt
Beiträge: 46
Registriert: 18. April 2006 09:33

Beitrag von darmstadt »

Es ist nur durch Copy'n'Paste passiert. Ist es sonst richtig?
Antworten