我做了一个类(class)学生
class student
{
private:
string ID;
string name;
int age;
public:
....
};
我想从用户那里获取值并将其放入 map 中,所以我创建了一个运算符>>重载
istream& operator>> (istream& in, student person){
string newID;
string newname;
int newage;
return in;
}
所以当它进入 cin 部分时
student person;
cin>>person;
当它把 person 添加到数据映射时,它会从默认构造函数而不是 cin 中调用值
怎么办?
最佳答案
运算符需要通过引用获取第二个参数:
istream& operator>>(istream& in, student& person) {
^ HERE
否则,您对 person
所做的更改永远不会超出 operator>>()
。
关于c++ - 运算符>> 用 C++ 映射重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653007/