#include <iostream>
using namespace std;
#include <string.h>
//写一个全局函数或者类函数,我只是单纯的想要知道,类的地址传输怎么样的一个形式并没有其他什么意思
//开始书写点和圆的半径之间的距离关系,
//把成员属性都设置为私有,想要修改就用成员函数,先来一来普通的,就只在一个函数里面,就好了
class point
{
private:
int myx;
int myy;
public:
void setx(int x)
{
myx = x;
}
int getx()
{
return myx;
}
void sety(int x)
{
myy = x;
}
int gety()
{
return myy;
}
};//然后发现找点的函数是重复的,所以可以公用这个函数
class circle
{
public:
void setR(int x)
{
m_r = x;
}
int getR()
{
return m_r;
}
void setcenter(point center)
{
circlet = center;//center本来就是一个函数,这样使用就可以使用point里面的函数了
}
point getcenter()
{
return circlet;
}
//圆的半径的设置,圆的xy坐标也需要设置啊
private:
int m_r;
point circlet;//point就是那个点的坐标,那圆自己
};
//判断函数
void hanshu(circle &x,point &p)//传入圆和点对二者进行一个判断,point本身就是设置点的,而圆里面使用此函数就是利用point里面设置点的这个函数
{
int distance = (p.getx() - x.getcenter().getx()) * (p.getx() - x.getcenter().getx()) + (p.gety() - x.getcenter().gety()) * (p.gety() - x.getcenter().gety());
//距离的平方就算完了
//开始比较
if (distance == x.getR()* x.getR())
{
cout << "点在圆上" << endl;
}
else if (distance > x.getR() * x.getR())
{
cout << "点在圆外" << endl;
}
else if (distance < x.getR() * x.getR())
{
cout << "点在圆内" << endl;
}
}
int main()
{
//主函数可以开始写了
circle c;
point center;//数据类型center有了,在继续利用point的函数进行赋值
center.setx(0);
center.sety(0);
//ok至此完成,类中类
point p;
p.setx(9);
p.sety(1);
c.setR(9);
c.setcenter(center);//只能往这个数据结构里面放point类型的数据
hanshu(c, p);
system("pause");
return 0;
}