目录
1. 头文件概述
对于一些大型程序而言,分文件编写尤为重要,进而引申出了编写头文件的相关需求。
2. 头文件编写格式及要求
2.1 第一步,在第一行写明,#program once,主要是为了防止头文件被重复引用。由于是第一次接触,详细还请参照这篇文章。->C语言 #pragma once - C语言零基础入门教程
2.2 第二步,引入代码使用的头文件;
2.3 第三步,将头文件所引用的文件的变量,及函数的声明写入头文件中。
如:Circle.h
#pragma once
#include <iostream>
#include "Point.h" // include写好的点类头文件
using namespace std;
class Circle // 定义一个圆的类
{
Point Cir_cen; // (点类)圆心
int Cir_R; // 半径
public:
void setCir(int x, int y, int r); // 初始化圆的属性
int Get_R(); // 得到圆的半径
double Distance(Point& p); // 判断一个点和圆的关系
};
3. 头文件引用的源文件编写要求
3.1 第一步,include编写过程中用到的头文件,和对应的头文件;
3.2 第二步,编写函数,对于头文件中声明的函数,应当在函数名前面写清楚函数的作用域是哪个类的。
如:Circle.cpp
#include<iostream>
#include"Circle.h"
void Circle::setCir(int x, int y, int r)
{
Cir_cen.Set_x(x);
Cir_cen.Set_y(y);
Cir_R = r;
}
int Circle::Get_R()
{
return Cir_R;
}
double Circle::Distance(Point& p)
{
return pow((
pow((p.Get_x() - Cir_cen.Get_x()), 2) +
pow((p.Get_y() - Cir_cen.Get_y()), 2)
), 0.5); // 计算点到圆心的距离
}
4. 主函数的调用
main.cpp
#include <iostream>
#include <math.h>
#include "Point.h"
#include "Circle.h"
using namespace std;
int main()
{
Circle c;
Point p;
int x, y, r; // 点的坐标(x, y)和圆的半径
double dis; // 两点间距离
cout << "依次输入圆心的坐标(x, y)和半径:";
cin >> x >> y >> r;
c.setCir(x, y, r);
cout << "输入点的坐标(x, y):";
cin >> x >> y;
p.Set_x(x); p.Set_y(y);
dis = c.Distance(p);
if (dis != c.Get_R())
{
if (dis > c.Get_R()) {
cout << "点在圆外,距离圆心" << dis << "处" << endl;
}
else {
cout << "点在圆内,距离圆心" << dis << "处" << endl;
}
}
else
{
cout << "点在圆上" << endl;
}
system("pause");
return 0;
}
5. 其他函数...
Point.h
#pragma once
#include<iostream>
using namespace std;
class Point
{
int P_x;
int P_y;
public:
void Set_x(int x);
void Set_y(int y);
int Get_x();
int Get_y();
};
Point.cpp
#include "Point.h"
void Point::Set_x(int x)
{
P_x = x;
}
void Point::Set_y(int y)
{
P_y = y;
}
int Point::Get_x()
{
return P_x;
}
int Point::Get_y()
{
return P_y;
}