c++ - 执行 operator>> 时出错:C++ no operator 与这些操作数匹配,操作数类型为:std::istream >> const double error
问题描述
无法解决此错误,请帮助我。我不知道该尝试什么,我之前没有做过 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(在头文件中)。
推荐阅读
- python - 使用 python 修改 PPM 图像
- laravel-5 - Laravel 背包不上传图片
- ios - 为什么与 Cocoapods 一起安装时适用于 iOS 的 Chromecast SDK 如此之大?
- arrays - Swift:如何将一个类中的结构实例添加到另一个结构中的数组中
- php - 如何使用 jquery 验证器在 php 上发送标签错误
- python - Python Selenium:过时的元素参考:元素未附加到页面文档
- swift - 如何使用 NSMenu 在 NSPopover 中选择 NSMenuItem?
- python - countvectorizer 线程安全吗?
- php - 根据用户定义的时间运行特殊任务
- javascript - 错误:加载资源失败:服务器响应状态为 500(asp.net 中的内部服务器错误