玩转C科技.NET

从学会做人开始认识这个世界!

导航

<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

公告

Subscribe to this feed
Contact volnet online!

MSN群MyMSDN技术讨论群
群号:www.msdn@hotmail.com
Windows Live Alerts
LiveMessenger:
<My Library>

很久没闪了,闪一下睡觉 10-12 04:22

与我联系

搜索

 

常用链接

留言簿(4)

我参与的团队

我的标签

随笔分类(121)

随笔档案(109)

文章分类(15)

文章档案(15)

相册

家园建设

最新随笔

积分与排名

  • 积分 - 160453
  • 排名 - 231

最新评论

  • 1. re: 浏览器将是跨平台的未来?
  • 为何我用ie7 开这个网页
    提示我下载????
  • --曲滨*銘龘鶽
  • 2. re: 浏览器将是跨平台的未来?
  • 等HTML5吧........ 不过最终方案请等到2022年。
  • --fftt
  • 3. re: 浏览器将是跨平台的未来?
  • @怪怪呵呵,夜猫子two~但是现在开源浏览器可以剥离组件出来,如果直接整合到部分桌面型Linux的上面,那么这种应用的推动就有益了,而且从宏观面来讲,长长远远地看,可能性不是没有的。当然这些都只能是猜...
  • --volnet(可以叫我大V)
  • 4. re: 浏览器将是跨平台的未来?
  • @volnet(可以叫我大V)
    现在,应用带动浏览器难,浏览器(并不仅仅是M$一家这样做)限制应用容易,让人不爽的世界。

    P.S. 夜猫子啊...
  • --怪怪
  • 5. re: 浏览器将是跨平台的未来?
  • @怪怪这个东西确是一年前就有的,不过我今天才发现,呵呵:囧囧~效率的确是个问题,但我期待N年后效率被人们无视的时候,很多应用搬上来就会很有价值。不过不知道那时候是不是又会有很多东西就蹦出来革新一下了...
  • --volnet(可以叫我大V)

阅读排行榜

评论排行榜

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

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在编译的时候就会忽略重复的定义而避免错误的产生了。

posted on 2008-07-18 20:31 volnet(可以叫我大V) 阅读(344) 评论(0)  编辑 收藏 所属分类: VC++/C++


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接:
 
使用Live Messenger联系我
关闭