私のクラスは次のようになります。
class FileOut
{
private:
std::ofstream stream;
public:
FileOut(string sciezka);
~FileOut(void);
friend FileOut & operator<< (FileOut & obiekt, const char* w);
friend FileOut & operator<< (FileOut & obiekt, const string & w);
friend FileOut & operator<< (FileOut & obiekt, const char & znak);
friend FileOut & operator<< (FileOut & obiekt, const int & liczba);
friend FileOut & operator<< (FileOut & obiekt, const double & liczba);
friend FileOut & operator<< (FileOut & obiekt, std::endl);
//friend FileOut & endl (FileOut & obiekt);
};
operator<<
文字列、char、int などで正常に動作します (新しい文字を に入れましたstream
)。endl
クラスにマニピュレータを実装したい。通常、次のようにオーバーライドします。
ostream & endl (ostream & os){ return os << '\n'; }
しかし、それは私のクラスではうまくいきません。私は宣言した
friend FileOut & endl (FileOut & obiekt);
しかし、うまくいきません。書くことができるようにするにはどうすればよいですか:
FileOut save("file.txt");
save<<"tralalala"<<endl<<1123;
???