首页 > 解决方案 > 没有运算符 ">>" 匹配这些操作数 -- 操作数类型是:std::istream >> const double

问题描述

我的代码

#include <iostream>
#include <stdlib.h>
#define Pi 3.14159
 
using namespace std;
 
class Rectangle
{
    public:
        friend ostream &operator<<(ostream &output,const Rectangle &D)
        {
            output<<"length:"<<D.length<<endl<<"height:"<<D.height<<endl;
            return output;
        }
        friend istream &operator>>(istream &input,const Rectangle &D)
        {
            input >> D.length >> D.height;
            return input;
        }
    private:
        double length;
        double height;
};

错误在 [17,19]:no operator ">>" 匹配这些操作数——操作数类型是:std::istream >> const double

我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。非常感谢您的回答。

标签: c++

解决方案


问问自己,你能入一个 const 变量吗?读取变量会改变变量,所以答案显然是否定的。

尝试这个

friend istream &operator>>(istream &input,Rectangle &D)

推荐阅读