C++ でレポート/ロガー クラスを作成しようとしています。
Report というオブジェクトをメインに持ち、このクラスに演算子 << を適用して、ofstream と同じように複数の文字列をファイルに書き込みたいと考えています。
したがって、次のコードを使用する代わりに:
ofstream myfile ("d://example.txt");
if (myfile.is_open())
{
myfile << "This is a line.\n" << "Heya!!!" << endl;
myfile.close();
}
次のようなものが欲しいです:
Report rLogger ("d://example.txt"); // Report C'tor (const string& s)
logger << "This is a line.\n" << "Heya!!!" << endl;
// the destructor of rLogger will close the file when it dies...
演算子 << をメンバー関数として記述する方法が見つかりません。これはまさにここで必要なものと思われます。演算子 << を使用できる唯一の方法は、この場合は役に立たない友人としてです。誰かが上記のように実装する方法を教えてもらえますか?
前もってありがとう、ガイ