2

我做了一个班学生

    class student
{
      private:
              string ID;
              string name;
              int age;
      public:
             ....
};

我想从用户那里获取值并将其放入地图中,所以我创建了一个 Operator>> Overloading

istream& operator>> (istream& in, student person){
    string newID;
    string newname;
    int newage;
    return in;
}

所以当它进入cin部分时

    student person;
    cin>>person;

当它将人员添加到数据映射时,它会调用来自默认构造函数而不是 cin 的值

该怎么办?

4

1 回答 1

1

运算符需要通过引用获取第二个参数:

istream& operator>>(istream& in, student& person) {
                                        ^ HERE

否则你所做的改变person永远无法摆脱operator>>()

于 2012-11-30T20:55:50.950 回答