<<<

2016-09-12 24 views
-1

私の独自のStringクラスを使用しています私は自分のカスタム文字列クラスでostreamを使用してオペレータをオーバーロードする方法を探しています< <バッファにストリームすることができます。<<<

私は、iostreamの内部の仕組みに慣れていますが、私が理解している方法では、std :: stringbufを私のカスタムstringstreamのベースにする方法は見ていませんstringbufはstd :: stringを扱うために動作します。本質的には

は、私がこれを行うことができる(または類似)にしたい:MyOutputはに印刷するように変更することができます

MyStringClass string 
MyOutput << "hello" << string << "World" << std::endl; 

はどこでも私が欲しいです。

ありがとうございます。

答えて

0

問題ありません。あなたのクラスを定義し、定義内にostream& operator<<(const String&);を追加します。

あなたはどんな扱いでもコーディングすることができます(インスピレーションのためにstd :: stringを見てください)

+0

それは簡単ですか?私の文字列が出力されているostreamは、std :: stringsを扱っていませんか?または単にそれを無視して、オペレータ定義の中に「印刷」をしていますか?ありがとう –

+0

'ostream'は' cout'の型です。 std :: stringとは関係ありません。私の宣言では 'cout << yourstring'を使うことができますが、あなたはcoutを使う必要はありません。あなたが望む目的地を使用してください。 – Aganju

+0

@LukeBourne '<<'関数の中では、すでに出力メソッドが定義されている 'std :: string'のような他の型を出力する必要があります。 – Barmar

関連する問題