PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eine Klasse über iostream ausgebbar machen. evtl. << überladen?



axeljaeger
06-11-2002, 15:02
Ich habe hier eine Reihe von Klassen, die ich gerne über einen iostream ausgeben würde, also etwa cout << klasse << endl. Muß ich dafür meine Klasse speziell vorbereiten, oder den iostream patchen?

anda_skoa
06-11-2002, 17:15
Du mußt den Stream Operator überladen



class Test
{
public:
friend ostream& operator<<(ostream&, const Test&);

Test(int i) : m_num(i) {};

private:
int m_num;
};

ostream& operator<<(ostream& str, const Test& t)
{
str << t.m_num;
return str;
}


Wahrscheinlich kann man den Operator auch in der Klasse deklarieren, aber ich hab da mal bei einem Versuch zuviele Fehlermeldungen bekommen.

Ciao,
_

PeterTheMaster
08-11-2002, 20:49
kann man nicht. es sei denn man will eine syntax wie
myObject >> cout;
denn eine methode hat immer this als impliziten ersten parameter.