覆盖istream和ofstream

时间:2015-10-15 03:27:11

标签: c++ override fstream

我无法覆盖文件流的<<>>运算符。

struct Reading
{
    int hour;
    double temp;

    Reading()
        : hour{ 0 }, temp{ 0 } {};
    Reading(int h, double t)
        : hour{ h }, temp{ t } {};
};

ifstream& operator<<(ifstream& ifs, const Reading& reading)
{
    return ifs << '(' << reading.hour << ',' << reading.temp << ')' << endl;
}

ofstream& operator>>(ofstream& ofs, Reading& reading)
{
    ofs >> reading.hour;
    ofs >> reading.temp;
    return ofs;
}

当我尝试以相同的方式覆盖iostream时,我没有问题,它只是文件流。你能指出我做错了吗?

1 个答案:

答案 0 :(得分:1)

您好像混淆ifstream in -filestream的缩写)用于输入和ofstream out -filestream的缩写) )用于输出。