gpt4 book ai didi

c++ - operator>> 执行期间出错:C++ 没有运算符匹配这些操作数 操作数类型为:std::istream >> const double error

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:07 26 4
gpt4 key购买 nike

无法解决此错误,请帮助我。我不知道该尝试什么,我以前没有做过 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;

enter image description here

最佳答案

我只需要从实现和声明(在头文件中)中删除 const。

关于c++ - operator>> 执行期间出错:C++ 没有运算符匹配这些操作数 操作数类型为:std::istream >> const double error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59012669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com