QTextStream erweitern

Alles rund um die Programmierung mit Qt
Antworten
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

QTextStream erweitern

Beitrag von BartSimpson »

Hallo Leute,
ich stehe gerade auf dem Schlauch.
Ich habe eine Klasse von QTextstream erben lassen um diesen um eine
operator<< Funktion zu erweitern. Das geht auch ganz gut.
Nur wie kann ich in der abgeleiteten Klasse die operator Funktion von QTextStream aufrufen.??
Klasse<<"test"; scheitert und der compiler schlägt mir nur meine neue operator Funktion vor.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

So wie Du auch eine Funktion von QTextStream aufrufst - QTextStream::operator << (foo)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Du meinst Klasse QTextStream::operator <<"text"; ?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Er meint es genau so wie er geschrieben hat ;)

Code: Alles auswählen

class A
{
  voif foo() {
    cout << "Hello" << endl;
  }
};

class B : public A
{
  void foo() {
    A::foo();
    cout << "world";
  }
};
Und genau so wird es auch mit QTextStream gehen.
Aber normalerweise macht man das anders, wenn man seine eigene Klasse in einen QTextStream streamen können sollen will ---

Code: Alles auswählen

QTextStream & operator<< ( QTextStream &, const Klasse& )
implementieren. Außer du änderst etwas an der Funktionsweise des Streams.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Das Problem ist, das das eine externe Klasse ist, die die in den Stream soll.
Daher habe ich mein eigenen Qtextstream gebaut, der die Klasse versteht.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Dann wäre es vllt. besser, wenn du dir einen eigenen Header erstellst, der dir den externen Header includiert und den operator überlädt. Ist wahrscheinlich einfacher und auch weniger Fehleranfällig, als QTextStream zu beerben ;)

Grüße
Franz
Antworten