头文件相关

头文件(Header  File):

        头文件的使用主要体现在两个方面,一个是重用(即多次使用),另一个是共用

        类似于标准库函数,在头文件里面应该模块化地给出一些函数或功能。另外还应该包括独立实现这些函数或功能的常量、变量和类型的声明。

//shape.h
struct circle
{
   double r;
};
//shape.cpp
const double pi=3.14159265358;
double perimeter_of_circle(double r)
{
   return 2*pi*r;
}
double area_of_circle(double r)
{
   return pi*r*r;
}
//main.cpp
#include<iostream>
#include "shape.h"//包含编写好的shape.h

using namespace std;
double perimeter_of_circle(double);
double area_of_circle(double);
int main()
{
   circle c={2};
   cout<<"Perimeter of circle "<<perimeter_of_circle(c.r)<<endl;
   cout<<"Area of circle "<<area_of_circle(c.r)<<endl;
   return 0;
}

        编写好了shape.h头文件,以后用到计算圆的周长或面积的时候,就不需要重新编写函数了,只需要包含这个头文件就行了。

        由于头文件是为了重用,所以在一个复杂的程序中,头文件可能会被间接地重复包含。如果头文件里面都是函数声明,那问题还不大。如果头文件里面有函数定义,那么就会出现函数被重复定义的错误,程序将无法运行。可以采用函数声明和定义分离的方式:把所有的声明都放在shape.h中,把所有的定义放在shape.cpp中。注意必须在shape.cpp中包含shape.h,否则在编译连接时会发生错误。在使用时仍然包含shape.h,但由于函数的定义并不在该头文件中,所以就不会被重复定义了。

        #include是一条编译预处理命令。编译预处理命令不会在运行时体现出来,因为它是写给编译器的信息,而不是程序中需要执行的语句。编译预处理命令不仅仅只有#include一条,在C++中,所有#开头的命令都是编译预处理命令,比如#if、#else、#endif、#ifdef、#ifndef、#undef和#define等等。

        当编译器遇到了#include命令后,就把该命令中的文件插入到当前的文件中。不难想象,main.cpp文件实质上包含了shape.h文件中的所有语句。所以它能够顺利调用shape.h文件中的各个函数。


        #include命令有#include <文件名>#include "文件名"两种写法。

        C++已经有一些编写好的头文件(比如标准函数库等等),它们存放在Include文件夹里。当使用#include <文件名>命令时,编译器就到这个文件夹里去找对应的文件。所以包含C++提供的头文件时,应该使用尖括号

        相反地,#include "文件名"命令则是先在当前文件所在的目录搜索是否有符合的文件,如果没有再到Include文件夹里去找对应的文件。

        C++标准规定,包含C++提供的标准头文件或系统头文件时应使用尖括号,包含自定义头文件时可使用双引号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值