我试着重载>>对象的运算符但我得到一些错误。为什么? C ++

时间:2014-05-21 21:54:05

标签: c++ overloading

我尝试重载>>操作员,但我得到一些错误。有什么不对?

class Holiday {
public:
    friend ifstream& operator >> (ifstream&
    st, const Holiday& h) {
        st >> h.id ;
        st >> h.dest ;
        st >> h.type;
        st >> h.price;
        return stream;
}

protected:
    int id;
    string dest;
    string type;
    int price;
};

1 个答案:

答案 0 :(得分:2)

在参数声明中删除限定符const

const Holiday& h

此外,你必须返回st

return st;

如果函数声明为

,那也会更好
friend istream& operator >> (istream& st, Holiday& h){