Circle.h
#pragma once
#include<iostream>
using namespace std;
#include"Point.h"
class Circle
{
private:
int m_R = 0;
Point Center;
public:
void setR(int r);
int getR();
void setCenter(int x, int y);
void judgement(Point& P);
};
Point.h
#pragma once //防止头文件重复包含
#include<iostream> //标准输入输出
using namespace std; //标准命名空间
class Point
{
private:
int m_X;
int m_Y;
public:
void setX(int x);
void setY(int y);
int getX();
int getY();
};
Circle.cpp
#include"Circle.h"
void Circle::setR(int r)
{
m_R = r;
}
int Circle::getR()
{
return m_R;
}
void Circle::setCenter(int x, int y)
{
Center.setX(x);
Center.setY(y);
}
void Circle::judgement(Point& P)
{
/*cout << P.getX() << endl;
cout << getCenterX() << endl;
cout << P.getY() << endl;
cout << getCenterY() << endl;*/
int distance = (P.getX() - Center.getX()) * (P.getX() - Center.getX())
+ (P.getY() - Center.getY()) * (P.getY() - Center.getY());
//cout << distance << endl;
if (distance < (getR() * getR()))
{
cout << "点在圆内" << endl;
}
else if (distance == (getR() * getR()))
{
cout << "点在圆上" << endl;
}
else
{
cout << "点在圆外" << endl;
}
}
Point.cpp
#include"Point.h"
void Point::setX(int x)//Point::成员函数说明
{
m_X = x;
}
void Point::setY(int y)
{
m_Y = y;
}
int Point::getX()
{
return m_X;
}
int Point::getY()
{
return m_Y;
}
case_circle.cpp(主文件)
#include<iostream>
using namespace std;
#include"Circle.h"
#include"Point.h"
int main()
{
Point P;
P.setX(3);
P.setY(4);
Circle C;
C.setCenter(0, 0);
C.setR(5);
C.judgement(P);
system("pause");
return 0;
}
发现经拆分后,主文件将会变得十分简洁,类的声明与类中成员函数的实现拆分开来便于管理,将各个文件进行拆分也有利于分工合作。
拆分方法:
创建头文件
#pragma once //防止头文件重复包含
#include<iostream> //标准输入输出
using namespace std; //标准命名空间
将原本的函数复制进来,将函数的实现删除,末尾加上分号进行补全。
创建源文件
#include"Point.h"//包含头文件
保留所有的函数实现。
发现报错,注意加上作用域Point::。
最后shift+tab,进行格式缩进。