友元 有点迷惘?
提示: 作者被禁止或删除 内容自动屏蔽
程序代码:#include<iostream>
using namespace std;
class CLine;
class CPoint //一条直线的一个点
{
friend void GetInterPoint(CLine &line); //友元函数 这语句编译不过,我也不知道为什么,前面我已先定义了 class CLine
public:
CPoint(int x1=0,int y1=0)
{
x=x1;
y=y1;
}
public:
int x,y;
};
class CLine
{
public:
void GetInterPoint(CLine &line);
void Print() //输出直线方程
{
a=(float)(pt2.y-pt1.y)/(pt2.x-pt1.x);
b=pt1.y-a*pt1.x;
cout<<"y="<<a<<"x+"<<b<<endl;
}
CLine(CPoint&a,CPoint&b)
{
pt1.x=a.x,pt1.y=a.y;
pt2.x=b.x,pt2.y=b.y;
}
private:
CPoint pt1,pt2;
float a,b,m,n;
};
void CLine::GetInterPoint(CLine &line) //求两直线的交点(x,y)
{
m=(line.b-(*this).b)/((*this).a-line.a);
cout<<"x="<<m<<endl;
n=(line.a)*(line.b-(*this).b)/((*this).a-line.a)+line.b;
cout<<"y="<<n<<endl;
}
int main()
{
CPoint l1(2,3);
CPoint l2(5,6);
CPoint l3(1,1);
CPoint l4(4,7);
CLine line1(l1,l2);
line1.Print();
CLine line2(l3,l4);
line2.Print();
line1.GetInterPoint(line2); //说是非法调用
return 0;
}
