sinat_16985427 2015-09-20 04:06 采纳率: 0%
浏览 2807

cannot access private member declared in class

#include
using namespace std;
class Complex{
public:
friend ostream&operator << (ostream&,Complex&);//声明重载运算符<<
friend istream&operator >> (istream&,Complex&);//声明重载运算符>>
private:
double real;
double imag;
};
ostream& operator <<(ostream& output,Complex &c)//定义重载运算符<<函数
{
output<<"("< }
istream& operator >函数
{
cout<<"input real part and imaginary part of complex number:"
input>>c.real>>c.imag;
return input;
}
int main()
{
Complex c1,c2;
cin>>c1>>c2;
cout<<"c1="<<c1<<endl;
cout<<"c2="<<c2<<endl;
return 0;
}
vc下提示的错误

C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(305) : error C2248: 'real' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(300) : see declaration of 'real'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(305) : error C2248: 'imag' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(301) : see declaration of 'imag'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(310) : error C2146: syntax error : missing ';' before identifier 'input'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(310) : error C2248: 'real' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(300) : see declaration of 'real'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(310) : error C2248: 'imag' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(301) : see declaration of 'imag'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(317) : error C2593: 'operator <<' is ambiguous
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(318) : error C2593: 'operator <<' is ambiguous

  • 写回答

3条回答 默认 最新

  • Robot-C 2015-09-20 04:10
    关注

     
    用sort进行排序的时候遇到了这个错误,上网一搜,发现了原因所在。又学到东西了,真是庆幸至极。
     
     
    1>e:/program files/microsoft visual studio 9.0/vc/atlmfc/include/afxtempl.h(776) : error C2248: 'CObject::operator......
    答案就在这里:error C2248: 'CObject::operator =' : cannot access private member declared in class
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集