欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C++】单独编译--一个大型程序如何构造?

程序员文章站 2022-05-07 12:11:07
...

目录

程序分为三部分

头文件包含的内容:

 coordin.h

 file1.cpp

file2.cpp

运行结果

多个库连接问题


 程序分为三部分

  1. 头文件:包含结构声明和使用这些结构的函数原型
  2. 源代码文件:包含与结构相关的函数原型代码
  3. 源代码文件:包含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";
}

运行结果

【C++】单独编译--一个大型程序如何构造?

多个库连接问题

【C++】单独编译--一个大型程序如何构造?

9.1节 

相关标签: 编译