编译出现error C2678: 二进制“>>”: 没有找到接受“std::istream”类型的左操作数的运算符(或没有可接受的转换),求指教啊

sinuos 2013-10-13 12:10:20
写了个运算符重载的函数,编译的时候出现了错误: error C2678: 二进制“>>”: 没有找到接受“std::istream”类型的左操作数的运算符(或没有可接受的转换),

代码
#ifndef _AAA_
#define _AAA_

#include <iostream>

class plural
{
private:
int m_nReal;
int m_nImaginary;
public:
plural();
plural(int nReal, int nImaginary);
plural operator+(const plural &b);
plural operator-(const plural &b);
plural operator*(const plural &b);
friend plural operator*(int n, const plural &b);
friend std::ostream & operator<<(std::ostream &os, plural &b);
friend std::istream & operator>>(std::istream &is, const plural &b);
};

#endif


#include <iostream>
#include <string>
#include <cmath>

using namespace std;

#include "mytime.h"

plural::plural()
{
m_nImaginary = 0;
m_nReal = 0;
}

plural::plural(int nReal, int nImaginary)
{
m_nImaginary = nImaginary;
m_nReal = nReal;
}

plural plural::operator*(const plural &b)
{
plural temp;
temp.m_nImaginary = this->m_nImaginary * b.m_nImaginary;
temp.m_nReal = this->m_nReal * b.m_nImaginary;
return temp;
}


std::istream & operator>>(std::istream &is, const plural &b)
{
//std::cout<<"Imaginary:";
if (is >> b.m_nImaginary)
{
cout <<"real:";
is >> b.m_nReal;
}

return is;
}


std::ostream & operator<<(std::ostream &os, plural &b)
{
os<<'('<<b.m_nReal<<','<<b.m_nImaginary<<"i)"<<endl;

return os;
}

plural operator*(int n, const plural &b)
{
plural temp;
temp.m_nImaginary = b.m_nImaginary * n;
temp.m_nReal = b.m_nReal * n;
return temp;
}

int main()
{
plural a(3, 4);
plural temp;
cout<<a;
}

...全文
633 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinuos 2013-10-13
  • 打赏
  • 举报
回复
我晕,多谢了
turing-complete 2013-10-13
  • 打赏
  • 举报
回复
 friend std::ostream & operator<<(std::ostream &os, const plural &b);
    friend std::istream & operator>>(std::istream &is, plural &b);

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧