【C++】单独编译--一个大型程序如何构造?
程序员文章站
2022-05-07 12:11:07
...
目录
程序分为三部分
- 头文件:包含结构声明和使用这些结构的函数原型
- 源代码文件:包含与结构相关的函数原型代码
- 源代码文件:包含main,调用与结构相关的代码
头文件包含的内容:
- 函数原型
- 使用#define 或者const 定义的符号常量
- 结构声明
- 类声明
- 模板声明
- 内联函数
coordin.h
// coordin.h -- 结构和函数声明
// structure templates
// 直角坐标系--极坐标系的转换
#ifndef COORDIN_H_
#define COORDIN_H_
struct polar //极坐标
{
double distance;
double angle;
};
struct rect //直角坐标系
{
double x;
double y;
};
// prototypes
polar rect_to_polar(rect xypos);
void show_polar(polar dapos);
#endif
file1.cpp
// file1.cpp -- example of a three file program
#include<iostream>
#include"coordin.h"
using namespace std;
int main()
{
rect rplace;
polar pplace;
cout << "请输入x和y的值:" << endl;
while (cin>>rplace.x>>rplace.y)
{
pplace = rect_to_polar(rplace);
show_polar(pplace);
cout << "下一组x,y的值(输入q退出):" << endl;
}
cout << "老铁,下次再见!" << endl;
return 0;
}
file2.cpp
// file2.cpp -- 包含file1.cpp的函数
#include<iostream>
#include<cmath>
#include"coordin.h"
//本函数转换直角坐标系到极坐标系
polar rect_to_polar(rect xypos)
{
using namespace std;
polar answer;
answer.distance = sqrt(xypos.x*xypos.x + xypos.y*xypos.y);
answer.angle = atan2(xypos.y, xypos.x);
return answer;
}
// 显示极坐标,转换角度到弧度
void show_polar(polar dapos)
{
using namespace std;
const double Rad_to_deg = 57.29577951;
cout << "distance = " << dapos.distance;
cout << ",angle = " << dapos.angle*Rad_to_deg;
cout << " degrees\n";
}
运行结果
多个库连接问题
9.1节
上一篇: 总结一下B/S和C/S的差别
下一篇: 源代码到可执行代码的过程