用预编译指令符避免多文件工程中重复定义的问题

1、用预编译指令符可以避免在多文件工程中调用文件的时候可能出现的重复定义的现象。

比如:

Main.cpp

#include “Animal.h”

#include “Fish.h”

……

 

Animal.h

class Animal()

{

                  

}

 

Fish.h

#include “Animal.h”

class Fish():public Animal

{

        

}

 

因此在调用Main.cpp的时候先运行

1#include “Animal.h”      复制Animal.h过来

class Animal()

{

                           

}

 

2#include “Fish.h” 复制Fish.h过来

#include “Animal.h”     复制Animal.h过来

class Animal()

{

                                    

}

 

class Fish():public Animal

{

                  

}

 

……

因此最后的文件应该是形如:

class Animal()

{

                           

}

class Animal()

{

                           

}

class Fish():public Animal

{

                  

}

因此重复定义了类

class Animal()

{

                           

}

是显而易见的。

这时候引入预编译指令符的方法来避免这样的现象来发生。

假设在最后的文件中我们来补充预编译指令符的方法:

 

                   #ifndef      ABCD       //如果没有定义ABCD,否则转向endif

                   #define      ABCD       //那么就定义ABCD

class Animal()

{

                           

}

#endif

 

#ifndef      ABCD       //如果没有定义ABCD,否则转向endif

                   #define      ABCD       //那么就定义ABCD

class Animal()

{

                           

}

#endif

 

class Fish():public Animal

{

                  

}

添加蓝色部分就可以避免重复定义了。

因此可以在多文本文件中做如下修改:

Main.cpp

#include “Animal.h”

#include “Fish.h”

……

 

Animal.h

#ifndef      ABCD       //如果没有定义ABCD,否则转向endif

#define      ABCD       //那么就定义ABCD

class Animal()

{

                  

}

#endif

 

Fish.h

#include “Animal.h”

#ifndef      ABCD       //如果没有定义ABCD,否则转向endif

#define      ABCD       //那么就定义ABCD

class Fish():public Animal

{

        

}

#endif

这样当Main.cpp在编译的时候就会忽略重复的定义而避免错误的产生了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值