头文件防重复包含

   先来看一个例子

   在fish.h文件中有

   #include"animal.h"  //fish类是从animal类中继承而来,所以要包含animal.h头文件

   class fish:public animal

  {

   public:

          void breach();

      .......         //省略

  }

  在ex10.cpp文件中有 主函数在ex10.cpp文件中

   #include"animal.h"

   #include"fish.h"

  ...............//省略

   程序在编译时就会出错,因为在编译ex10.cpp时,文件中包含animal.h头文件,编译器展开他知道animal类定义了,又展开fish.h都文件,fish.h又包含animal.h,又定义了animal.h,重复定义了,所以报错了。

   为了防止重复包含,修改如下:

   在animal.h中加入

  #ifndef ANIMAL_H_H

  #define ANIMAL_H_H

   .................//省略代码

  #endif

在fish.h中加入

  #ifndef FISH_H_H

  #define FISH_H_H

  ................//省略代码

  #endif

  这样就能防止重复包含了,当编译器第一次展开animal.h时,条件预处理指令判断ANIMAL_H_H没有定义,就定义了他,然后继续执行下面的代码。接着展开fish.h头文件,而在fish.h头文件中也包含了animal.h,再次展开,发现ANIMAL_H_H已经定义,于是直接跳到#endif,执行结束。防止了重复定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值