c++ 类型转换 对象与对象之间的转换

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:12:26
定义了两个类,要实现两个类之间的相互转换,但是第一个类在定义转换函数的时候要用到第二个类,而第二个类在下面,编译时根本就不能。不知道怎样才能实现呢,请高手指教一下,有答案了再给分哈!能给的,多少都行。谢谢了
下面是我自己编的一部分:能帮我改一下就可以了:
//**********************************************
//*********************ra类*********************
//**********************************************
class ra
{
public:
double r,a;
ra(double rr=20,double aa=10){r=rr;a=aa;}//ra构造函数
ra(const ra &p){r=p.r;a=p.a;}//ra拷贝构造函数
friend istream &operator>>(istream &in,ra &ob);//ra">>"
friend ostream &operator<<(ostream &out,ra &ob);//ra"<<"
operator double(){return r;}//double转换
operator xy()//xy类转换
{
xy xy3;
xy3.x=r*cos(a);
xy3.y=r*sin(a);
return xy3;
}
};
//**********************************************
//*********************xy类*********************
//**********************************************
class xy
{
public:
double

碰到这种情况 , 需要在class ra前面先声明一句 class xy;
然后把 class ra 里面的:
operator xy()//xy类转换
{
xy xy3;
xy3.x=r*cos(a);
xy3.y=r*sin(a);
return xy3;
}
的定义放到cpp文件里面,头文件只留一个声明 operator xy();