Я хочу перегрузить оператор <<
в C ++, чтобы создать двоичный и текстовый файл для следующего типа класса.
class data
{
public :
int a;
char b;
}
как я могу перегрузить оператор <<
, чтобы создать как двоичный и текстовый файл для этого типа класса, например:
ostream& operator(ostream &out, data &d) //for text
{
out<<d.a<<' '<<d.b<<'\n';
return out;
}
and
ostream& operator<<(ostream &out, data &d) //for binary
{
// code to serialize class data to store it in binary
return out;
}
проблема в том, что я не могу передать два разных потока (например, ostream& operator<<(ostream& out1, ostream& out2, data& d)
) в <<
одновременно из-за прототипа или способ определения оператора <<
, в котором он принимает только один ostream
как parameter
. Кроме того, поскольку я могу передать только один поток оператору <<
, я не смогу связать операцию <<
для класса как для текстового, так и для двоичного файла одновременно.