私のアプリケーションのログ・ファイルを書き込むために、C++でクラスを持っています。 Iすでにクラスを構築し、それが動作しますが、それはこのようなものですしている:まあ、ロガーのオブジェクトのために、ログファイルに行を印刷するために、それは単純である、という直感的であるCoutのような表記でC++でログ・ストリームを管理する
class Logger {
std::string _filename;
public:
void print(std::string tobeprinted);
}
以下を行うために必要なもの:
Logger mylogger("myfile.log");
mylogger.print(std::string("This is a log line"));
よく。方法のアプローチを使用することは、より良いパターンを使用するのと同じではありません< <です。 私は次のことをしたいと思います:
Logger mylogger("myfile.log");
mylogger << "This is a log line";
それだけです。私は< <演算子をオーバーロードしなければならないとし...しかし、この署名を使用してのオーバーロード(クラシック1):
ostream& operator<<(ostream& output, const MyObj& o);
しかし、私はのostreamを持っていない... だから、次のように私はいいですか?
Logger& operator<<(Logger& output, const std::string& o);
これは正しいですか? ありがとう
'std :: ofstream'にはない機能は何ですか? –
私は既にログクラスにすべての機能を持っています。ここでは、<< operatorを使うようなものをもっとC++にする方法が必要でした。 – Andry
あなたはどんな機能を提供していますか? –