#C++#封装案例(点和圆的位置关系)
#include <iostream>
using namespace std;
//点和圆的位置关系
class Point{
private:
int m_x;
int m_y;
public:
void setX(int x){
m_x=x;
}
void setY(int y){
m_y=y;
}
int getX(){
return m_x;
}
int getY(){
return m_y;
}
};
class Circle{
private:
int m_r;
Point m_center;
public:
void setR(int r){
m_r=r;
}
int getR(){
return m_r;
}
void setCenter(Point center){
m_center=center;
}
Point getCenter(){ //在类中可以让另一个类作为本类中的成员
return m_center;
}
};
void isCircle(Circle &c,Point &p){
int d=
(c.getCenter().getX()-p.getX())*(c.getCenter().getX()-p.getX())+
(c.getCenter().getY()-p.getY())*(c.getCenter().getY()-p.getY());
int rd=c.getR()*c.getR();
if(d==rd){
cout<<"点在圆上"<<endl;
}else if(d<rd){
cout<<"点在圆内"<<endl;
}else{
cout<<"点在圆外"<<endl;
}
}
int main(){
//创建圆
Circle c;
c.setR(10);
Point Center;
Center.setX(10);
Center.setY(0);
c.setCenter(Center);
//创建点
Point p;
p.setX(10);
p.setY(11);
isCircle(c,p);
return 0;
}