ostream
渡されたに何かを出力し、ストリームを返す関数を次のように記述したいと思います。
std::ostream& MyPrint(int val, std::ostream* out) {
*out << val;
return *out;
}
int main(int argc, char** argv){
std::cout << "Value: " << MyPrint(12, &std::cout) << std::endl;
return 0;
}
このように値を出力し、で行ったように、関数呼び出しを出力演算子チェーンに埋め込むと便利main()
です。
ただし、これは機能せず、次のように出力されます。
$ ./a.out
12Value: 0x6013a8
必要な出力は次のようになります。
Value: 12
どうすればこれを修正できますか?operator<<
代わりに定義する必要がありますか?
更新:目的の出力がどうなるかを明確にしました。
UPDATE2:直接印刷するのではなく、関数を使用して、なぜそのような数値を印刷するのか理解できない人もいました。これは単純化された例であり、実際には、関数はではなく複雑なオブジェクトを出力しますint
。