Seite 1 von 1

QTextStream erweitern

Verfasst: 18. April 2009 20:53
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.

Verfasst: 18. April 2009 21:02
von Christian81
So wie Du auch eine Funktion von QTextStream aufrufst - QTextStream::operator << (foo)

Verfasst: 18. April 2009 21:18
von BartSimpson
Du meinst Klasse QTextStream::operator <<"text"; ?

Verfasst: 18. April 2009 21:52
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.

Verfasst: 18. April 2009 23:00
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.

Verfasst: 19. April 2009 07:47
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