C++中两个类的相互使用,请高手出招

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:56:30
以下是代码
#include<iostream>
using namespace std;
class xy
{
public:
xy(double a,double b)
{
x=a;y=b;
}
operator ra();
private:
double x,y;
};
xy::operator ra()
{
ra aa;
aa.r=this->x;
aa.a=this->y;
return aa;
}
class ra
{
public:
ra(double x,double y)
{
r=x;a=y;
}
operator xy();
private:
double r,a;
};
ra::operator xy()
{
xy aa(10,20);
aa.x=this->r;
aa.y=this->a;
return aa;
}
int main()
{
return 0;
}

#include<iostream>
using namespace std;

class ra; //1.加入前向声明

class xy
{
public:
xy(double a,double b) {
x=a;
y=b;
}
operator ra();
private:
double x,y;
};

class ra
{
public:
ra(double x,double y)
{
r=x;
a=y;
}
operator xy();
private:
double r,a;
};

xy::operator ra() //2.调整函数定义位置,至ra已经有定义的位置
{
ra aa(this->x,this->y); //3由于没有默认构造函数,所以使用带参数的形式
return aa;
}

ra::operator xy()
{
xy aa(this->r,this->a); //4由于ra并不是xy的友元类,删掉无权访问的操作,也改用构造函数
return aa;
}

int main()
{
return 0;
}