【发布时间】:2013-05-25 02:51:14
【问题描述】:
我的班级看起来像:
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;
???
【问题讨论】:
-
this question/answer 是否与您尝试做的类似?或者this one?
-
什么'不起作用'?您是否遇到编译器错误、意外输出、电视随机内爆?
-
1) 错误 C2679:二进制“
标签: c++ stream overriding endl