C++的重载问题

#include<iostream>#include<math.h>classPCoor;classRCoor{private:doublex,y;public:doub... #include <iostream>
#include <math.h>
class PCoor;
class RCoor
{
private:
double x,y;
public:
double GetX();
double GetY();
RCoor();
RCoor(double, double);
//重载赋值运算符 使之完成坐标转换
const RCoor &operator=(const PCoor&);
};
double RCoor::GetX()
{
return x;
}
double RCoor::GetY()
{
return y;
}
RCoor::RCoor()
{
x = 0.0;
y = 0.0;
}
RCoor::RCoor(double x, double y)
{
this->x = x;
this->y = y;
}
const RCoor& RCoor::operator=(const PCoor& pcoor)
{
double a = pcoor.GetAngle();
double r = pcoor.GetDis();
x = r * cos(a);
y = r * sin(a);
}
////////////////////////////////////////////////////////////////////////////////
class PCoor
{
private:
double angle, dis;
public:
double GetAngle();
double GetDis();
PCoor();
PCoor(double, double);
//重载赋值运算符 使之完成坐标转换
const PCoor& operator=( RCoor&);
};
double PCoor::GetAngle()
{
return angle;
}
double PCoor::GetDis()
{
return dis;
}
PCoor::PCoor()
{
angle = 0.0;
dis = 0.0;
}
PCoor::PCoor(double angle, double dis)
{
this->angle = angle;
this->dis = dis;
}
const PCoor& PCoor::operator=( RCoor& rcoor)
{
double x = rcoor.GetX();
double y = rcoor.GetY();
dis = sqrt(x*x + y*y);
angle = atan(y/x);
}
////////////////////////////////////////////////////////////////////////////////
int main()
{
return 0;
}

各位帮忙看一下。。这个应该怎么改啊。。?
error(43): invalid use of undefined type `const struct PCoor'
error(4): forward declaration of `const struct PCoor'
error(43):invalid use of undefined type `const struct PCoor'
error(4): forward declaration of `const struct PCoor'
展开
 我来答
luosiyong
推荐于2016-09-22 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1618万
展开全部
修改后的,代码里给了注释

#include <iostream>
#include <math.h>
class PCoor;
class RCoor
{
private:
double x,y;
public:
double GetX();
double GetY();
RCoor();
RCoor(double, double);
//重载赋值运算符 使之完成坐标转换
const RCoor &operator=(const PCoor&);
};
class PCoor //class声明移到前面
{
private:
double angle, dis;
public:
double GetAngle() const; //这里加const
double GetDis() const; //这里加const
PCoor();
PCoor(double, double);
//重载赋值运算符 使之完成坐标转换
const PCoor& operator=( RCoor&);
};
double RCoor::GetX()
{
return x;
}
double RCoor::GetY()
{
return y;
}
RCoor::RCoor()
{
x = 0.0;
y = 0.0;
}
RCoor::RCoor(double x, double y)
{
this->x = x;
this->y = y;
}
const RCoor& RCoor::operator=(const PCoor& pcoor)
{
double a = pcoor.GetAngle();
double r = pcoor.GetDis();
x = r * cos(a);
y = r * sin(a);
}
////////////////////////////////////////////////////////////////////////////////
double PCoor::GetAngle() const
{
return angle;
}
double PCoor::GetDis() const
{
return dis;
}
PCoor::PCoor()
{
angle = 0.0;
dis = 0.0;
}
PCoor::PCoor(double angle, double dis)
{
this->angle = angle;
this->dis = dis;
}
const PCoor& PCoor::operator=( RCoor& rcoor)
{
double x = rcoor.GetX();
double y = rcoor.GetY();
dis = sqrt(x*x + y*y);
angle = atan(y/x);
}
////////////////////////////////////////////////////////////////////////////////
int main()
{
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式