为了账号安全,请及时绑定邮箱和手机立即绑定

运算符重载


Coordinate operator+(Coordinate c1,Coordinate c2)//我已经在类里声明友元了

//friend Coordinate operator+( Coordinate &c1, Coordinate &c2);

{
   Coordinate temp(0,0);
   temp.m_iX=c1.m_iX+c2.m_iX;
   temp.m_iY=c1.m_iY+c2.m_iY;
   return temp;//编译器提示我m_iX和m_iY是私有变量  不能访问
}

正在回答

1 回答

//friend Coordinate operator+( Coordinate &c1, Coordinate &c2);

声明里参数是引用类型的


Coordinate operator+(Coordinate c1,Coordinate c2)

定义里面却不是,编译器会认为这是两个不一样的函数的


Coordinate operator+(Coordinate &c1,Coordinate &c2)
//friend Coordinate operator+( Coordinate &c1, Coordinate &c2);
{
   Coordinate temp(0,0);
   temp.m_iX=c1.m_iX+c2.m_iX;
   temp.m_iY=c1.m_iY+c2.m_iY;
   return temp;//编译器提示我m_iX和m_iY是私有变量  不能访问
}

这样试一下。。

0 回复 有任何疑惑可以回复我~
#1

乱舞的旋律 提问者

试过了
2016-04-21 回复 有任何疑惑可以回复我~
#2

乱舞的旋律 提问者

算了,后来改着改着就对了,不清楚哪里细节错了
2016-04-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

运算符重载

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信