weixin_31884495 2015-10-20 10:04 采纳率: 0%
浏览 1406

C++运算符重载问题友元函数

#include#includeusing namespace std;class Complex{ public: Complex(double newx=0.0, double newy=0.0 ); //Complex(); Complex(Complex &c); double getx() const; double gety() const; Complex Add(const Complex &another); void Output(); friend istream & operator>>(istream &in, const Complex &c); friend ostream & operator<<(ostream &out, const Complex &c); Complex operator+(const Complex &c2)const; ~Complex(){}; private: double x,y;};Complex::Complex(double newx, double newy){ x=newx; y=newy;}/*Complex::Complex(){ x=0; y=0;}*/Complex::Complex(Complex &c){ x=c.x; y=c.y;}double Complex::getx()const{ return x;}double Complex::gety()const{ return y;}Complex Complex::Add(const Complex &another){ Complex r; r.x=x+another.getx(); r.y=y+another.gety(); return r;}void Complex::Output(){ cout<=0) cout<<"+"; cout<>(istream &in, const Complex &c){// in>>"(">>c.x>>","<>c.x; in>>c.y; return in;}ostream & operator<<(ostream &out, const Complex &c){ out<<"("<>z1; cin>>z2; z4=z1.Add(z2); z4.Output(); z3 = z1+z2; z3.Output(); return 0;}

运行后错误: error C2248: 'x' : cannot access private member declared in class 'Complex'

see declaration of 'x'

error C2593: 'operator >>' is ambiguouserror C2248: 'y' : cannot access private member declared in class 'Complex'

反正就是不能访问私有成员什么的

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了