首先可以先确定一个点的申明方式,后续可以通过点来确定圆心。
#ifndef _POINT_H
#define _POINT_H
class Point
{
private:
int m_x;
int m_y;
public:
void setxy(int x,int y);
int getdistance(Point &p);
};
#endif
点的函数的实现
#include"Point.h"
void Point::setxy(int x,int y)
{
m_x=x;
m_y=y;
}
int Point::getdistance(Point &p)
{
return ((this->m_x-p.m_x)*(this->m_x-p.m_x)+(this->m_y-p.m_y)*(m_y-p.m_y));
}
圆的头文件
#ifndef _CIRCLE_H
#define _CIRCLE_H
#include"Point.h"
class Circle
{
private:
int m_r;
Point m_p; //对象作为成员变量
public:
void set(int x,int y,int r);
bool judge(Point &p);
};
#endif
圆的函数的实现
#include"Circle.h"
#include"Point.h"
#include<iostream>
using namespace std;
void Circle::set(int x,int y,int r)
{
m_r=r;
m_p.setxy(x,y);
}
bool Circle::judge(Point &p)
{
if(m_r*m_r>=p.getdistance(m_p))
{
return false;
}
else
return true;
}
main函数
#include"Circle.h"
#include<iostream>
using namespace std;
int main()
{
Circle c;
Point p;
p.setxy(1,2);
c.set(1,2,3);
if(c.judge(p))
{
cout<<"圆外"<<endl;
}
else
{
cout<<"圆内"<<endl;
}
return 0;
}