无法解决此错误,请帮助我。 我不知道该尝试什么,我以前没有做过 operator>> 重载。 我不明白为什么会出现此错误。 如果我解决了这个问题,我想用这个重载从文件中读取。
代码如下:
#include "Diak.h"
Diak::Diak(string vn, string kn, double a)
{
this->vnev = vn;
this->knev = kn;
this->atlag = a;
}
double Diak::getAtlag() const
{
return this->atlag;
}
string Diak::getVnev() const
{
return this->vnev;
}
string Diak::getKnev() const
{
return this->knev;
}
ostream& operator<<(ostream& os, const Diak& diak)
{
os << diak.vnev << " " << diak.knev << " " << diak.atlag << endl;
return os;
}
istream& operator>>(istream& is, const Diak& diak)
{
is >> diak.vnev >> diak.knev >> diak.atlag;
return is;
}
bool operator<(const Diak& d1, const Diak& d2)
{
if (d1.getVnev() < d2.getVnev())
{
return true;
}
else if(d1.getKnev() == d2.getKnev())
{
if (d1.getKnev() < d2.getKnev())
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
这一行的问题:
is >> diak.vnev >> diak.knev >> diak.atlag;
最佳答案
我只需要从实现和声明(在头文件中)中删除 const。
关于c++ - operator>> 执行期间出错:C++ 没有运算符匹配这些操作数 操作数类型为:std::istream >> const double error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59012669/