本案例主要在于用到类中里面使用了一个类。
及带有类的模块化的编程
eg:
#include<iostream>
using namespace std;
class point
{
public:
void setx(int x)
{
m_x = x;
}
int getx()
{
return m_x;
}
void sety(int y)
{
m_y = y;
}
int gety()
{
return m_y;
}
private:
int m_x;
int m_y;
};
class circle
{
public:
void setR(int r)
{
m_r=r;
}
int getR()
{
return m_r;
}
void setCentral(point central)
{
m_central = central;
}
point getCentral()
{
return m_central;
}
int ifCircleandPoint(point &point1,circle Âle)
{
int flag=0;
flag=((point1.getx()-Acircle.getCentral().getx())*(point1.getx()-Acircle.getCentral().getx())+(point1.gety()-Acircle.getCentral().gety())*(point1.gety()-Acircle.getCentral().gety())==(Acircle.getR()*Acircle.getR()));
if(flag == 1)
{
return 0;
}
flag=((point1.getx()-Acircle.getCentral().getx())*(point1.getx()-Acircle.getCentral().getx())+(point1.gety()-Acircle.getCentral().gety())*(point1.gety()-Acircle.getCentral().gety())>(Acircle.getR()*Acircle.getR()));
if(flag==1)
{
return 1;
}
else
{
return 2;
}
}
private:
int m_r;
point m_central;
};
int main()
{
circle a1;
point b1;
point center;
int flag;
center.setx(10);
center.sety(0);
b1.setx(10);
b1.sety(100);
a1.setR(10);
a1.setCentral(center);
flag=a1.ifCircleandPoint(b1,a1);
if(flag == 0)
{
cout<<"on the circle"<<endl;
}
else if(flag == 1)
{
cout<<"out the circle"<<endl;
}
else if(flag == 2)
{
cout<<"infer the circle"<<endl;
}
return 0;
}
eg:
5个文件
circle.cpp
#include"circle.h"
void circle::setR(int r)
{
m_r=r;
}
int circle::getR()
{
return m_r;
}
void circle::setCentral(point central)
{
m_central = central;
}
point circle::getCentral()
{
return m_central;
}
int circle::ifCircleandPoint(point &point1,circle Âle)
{
int flag=0;
flag=((point1.getx()-Acircle.getCentral().getx())*(point1.getx()-Acircle.getCentral().getx())+(point1.gety()-Acircle.getCentral().gety())*(point1.gety()-Acircle.getCentral().gety())==(Acircle.getR()*Acircle.getR()));
if(flag == 1)
{
return 0;
}
flag=((point1.getx()-Acircle.getCentral().getx())*(point1.getx()-Acircle.getCentral().getx())+(point1.gety()-Acircle.getCentral().gety())*(point1.gety()-Acircle.getCentral().gety())>(Acircle.getR()*Acircle.getR()));
if(flag==1)
{
return 1;
}
else
{
return 2;
}
}
circle.h
#pragma once
#include<iostream>
#include"point.h"
using namespace std;
class circle
{
public:
void setR(int r);
int getR();
void setCentral(point central);
point getCentral();
int ifCircleandPoint(point &point1,circle Âle);
private:
int m_r;
point m_central;
};
point.cpp
#include"point.h"
void point::setx(int x)
{
m_x = x;
}
int point::getx()
{
return m_x;
}
void point::sety(int y)
{
m_y = y;
}
int point::gety()
{
return m_y;
}
point.h
#pragma once//restrict repeating headerfile
#include<iostream>
using namespace std;
class point
{
public:
void setx(int x);
int getx();
void sety(int y);
int gety();
private:
int m_x;
int m_y;
};
mainpro.cpp
#include"point.h"
#include"circle.h"
int main()
{
circle a1;
point b1;
point center;
int flag;
center.setx(10);
center.sety(0);
b1.setx(10);
b1.sety(100);
a1.setR(10);
a1.setCentral(center);
flag=a1.ifCircleandPoint(b1,a1);
if(flag == 0)
{
cout<<"on the circle"<<endl;
}
else if(flag == 1)
{
cout<<"out the circle"<<endl;
}
else if(flag == 2)
{
cout<<"infer the circle"<<endl;
}
return 0;
}