zoukankan      html  css  js  c++  java
  • C++程序的多文件组织

    构造一个大型程序时如果程序开发时间有限,这种形式的团队协作就非常重要。利用函数将一个编程任务分解为子任务的一个优势在于,不同的人可以负责不同的子任务。在程序进行编译时,以程序模块(即程序文件)为编译单位,即分别对每一个编译单位进行编译。如果发现错误,可以在本程序模块范围内查错并改正。

    1.头文件

    考虑标识符在其他文件中的可见性。使用头文件是很有效的方法。
    例如:

     #include <iostream>

    又如:

    #include"my.h"//这里,my.h为程序员自定义头文件

    用尖括号时,系统到系统目录中寻找要包含的文,件如果找不到,编译系统就给出出错信息。所谓系统目录,是指存放C++系统的目录一般情况下,库函数和C++编译系统是存放在同一个目录中的。因此如果要包含的是C++系统提供的头文件,宜用这种方式。
    说明: iostream是C++的头文件, iostream.h是C的头文件,即标准的C++头文件没有.h扩展名。系统定义的头文件中定义了一些常用标识符和函数,用户只要将头文件包含进自己的文件,就可使头文件中定义的标识符在用户文件中变得可见,也就可以直接使用头文件中定义的标识符和函数了。
    如果被包含的文件不在系统目录中,特别是用户自己编写的被包含的头文件,往往存放在自己指定的目录中,这时应该用双引号形式,在双引号中指出文件名。
    头文件中可以包括:用户构造的数据类型(如枚举类型)、外部变量、函数声明(原型)、常量等具有一定通用性或常用的量,而一般性的变量和函数定义不宜放在头文件中。

    2.多文件结构

    C++程序一般分三类文件:

    • 头文件( .h )。放置各种声明,用于被cpp文件包含。
    • 模块文件(.cpp)。放置一些函数定义,也称为功能模块。
    • 主程序文件(.cpp)。包含main()的文件,程序入口,调用模块文件实现的方法。

    在源文件中一定要包含头文件,即#include"....h";

    【实例】程序采用多文件形式实现如下功能:在两个源程序文件中分别实现计算三角形面积、圆面积。

    //my.h文件
    #include<iostream> #include<cmath> using namespace std; double trangle_area(double, double, double); double circle_area(double); const double PI=3.14159;
    //计算三角形面积的源程序文件————trangle.cpp:
    #include"my.h" double trangle_area(double a, double b, double c) { double t, area; t = (a + b + c) / 2; area = sqrt(t*(t - a)*(t - b)*(t - c)); return area; }
    //计算圆面积的源程序文件————circle.cpp:
    #include"my.h" double circle_area(double r1) { double area; area = PI * r1 * r1; return area; }
    //调用以上计算函数输出图形面积信息的源程序文件————main.cpp:
    #include"my.h" int main() { double a, b, c; double r; cout << "请输入三角形的三条边:"; cin >> a >> b >> c; if (a + b <= c || a + c <= b || b + c <= a) cout << "输入的三条边不能构成三角形!" << endl; else cout << "三角形的面积=" << trangle_area(a, b, c) << endl; cout << "请输入圆的半径:"; cin >> r; cout << "圆的面积=" << circle_area(r) << endl; system("pause"); return 0; }

    程序的结构

     

  • 相关阅读:
    Python基础实例001:数字组合问题
    Python集合
    标量、向量、矩阵、张量
    re模块函数之search
    Python常用字符串操作
    Python基础之元组
    Bai, IEEE 2019
    词嵌入
    RNN 训练时梯度爆炸和梯度消失的理解
    OCR 综述
  • 原文地址:https://www.cnblogs.com/CX66/p/13939098.html
Copyright © 2011-2022 走看看