我正在阅读以下格式的用户信息文件:
1 David Davidson: 64 Zoo Lane
2 Homer Simpson: 123 Fake Street, Springfield
3 Craig Boone: Presidential Suite, Lucky 38, New Vegas
我想将这些信息存储在一个名为Borrower的类中,其中包含ID号,名称和地址字段,因此我已经超载了>>运算符如下:
istream& operator>>(istream& in, Borrower& b){
in >> b.idNumber;
std::getline(in, b.name, ':');
in.ignore(1);
in >> b.address;
return in;
}
我尝试在main.cpp中使用它,如下所示:
ifstream fileUsers;
fileUsers.open("users.txt");
if (!fileUsers.is_open()){
exit(EXIT_FAILURE);
}
Borrower b();
while (fileUsers.good()){
fileUsers >> b;
cout << b;
}
但是我为运营商&gt;&gt;&#39;带来了模糊的重载错误和&#39; Borrower()&#39; to&#39; std :: basic_istream ....&#39;而且我不知道该怎么做,请帮忙
答案 0 :(得分:3)
此问题与重载operator>>
没有任何关系。
错误的是你写道:
Borrower b();
但这是一个功能声明。
相反,写一下:
Borrower b;