青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

渴望飛翔
Fly in the C++ Sky...
posts - 9,  comments - 6,  trackbacks - 0

在C++中經常會涉及到處于不同頭文件的類互相引用的情況,有時候頭文件引用(include)會搞得很亂,導致報一堆的錯。其實遵循一定規則,可以避免大部分的混亂。

首先,要對頭文件進行處理,保證不會出現重定義的錯誤。這個應該每個人都會,通常有兩種做法:

1. 在.cpp文件中添加保護,比如在.cpp文件中添加:

#ifndef _XX_H_
#define _XX_H_
#include "xx.h"
#endif

2. 在.h中添加保護,比如在xx.h文件中添加:

#ifndef _XX_H_
#define _XX_H_
// 頭文件聲明內容
#endif

_XX_H_是我比較習慣的命名方式,其他的命名方式,比如__XX__H__,XX_H等等,只要足夠Unique就好。建議使用第二種方式進行重定義的保護,一勞永逸而且具有通用性,任何人拿來就能用,不需要考慮保護問題。當然,如果在VS(03以上吧?)下,最好的解決方案是用#pragma once,更為簡單有效。

其次,最好將所有頭文件需要用到的自定義類(或函數)都在定義前聲明一下,比如在xx.h的類xx中需要用到yy.h中的yy類,那么最好做以下的處理:

class yy;

class xx
{
 // 實現內容
};

這樣就可以保證頭文件引用的次序不會對結果造成影響。

通常,保證以上兩點,通常涉及到類互指的問題都可以解決。當然如果天生就有設計問題,無論如何都是沒有辦法的,比如:

// xx.h
class xx
{
 yy t;
};

// yy.h
class yy
{
 xx t;
};

不難看出,這是個遞歸定義,編譯器無法確定類xx和yy的大小,就無法通過編譯。一種解決策略是采用指針,比如:

// xx.h
class xx
{
 yy* t;
};

// yy.h
class yy
{
 xx* t;
};

當然,具體情況具體分析,提取一個更高層的類等手段都可以考慮。

還有一個問題,我一直也心存疑問,就是頭文件組織問題。在VS中建立一個MFC工程,都會產生一對stdafx文件,按照這種思想我們把工程下通用的頭文件都放入stdafx.h中,在.cpp文件的最開始統一#include "stdafx.h",這樣就可以在.h文件中引用很少的頭文件。

這種策略在單工程時很好用,相當于做了頭文件組織級別的重用,但它違反了我一直恪守的一個原則即誰的頭文件誰負責,指.h和.cpp各自負責各自所需的頭文件。于是在跨工程的時候會出現一些問題。比如在B工程B的某個.h中引用了工程B中的一個頭文件,由于編譯次序問題,這個頭文件可能無法被編譯。不知道大家都如何處理頭文件組織問題的,望指教。



duguguiyu 2007-07-21 19:37 發表評論

文章來源:http://www.cnblogs.com/duguguiyu/archive/2007/07/21/826821.html
posted on 2007-07-21 19:37 duguguiyu 閱讀(640) 評論(1)  編輯 收藏 引用 所屬分類: MFC

FeedBack:
# re: 互引頭文件的一種解決策略
2009-01-13 13:07 | sfsf
very nice  回復  更多評論
  
Welcome to my c++ home...

<2009年1月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用鏈接

留言簿(1)

隨筆分類(9)

隨筆檔案(9)

搜索

  •  

積分與排名

  • 積分 - 10738
  • 排名 - 1159

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲天堂久久| 亚洲高清久久网| 国产精品99久久久久久www| 欧美精品久久久久久久免费观看 | 黄色成人91| 蜜桃久久av一区| 欧美黄色一级视频| 中文国产成人精品| 欧美一区二区三区婷婷月色| 禁久久精品乱码| 亚洲精品久久在线| 国产精品久久久久久妇女6080| 久久精品国产69国产精品亚洲 | 这里只有视频精品| 国产亚洲成精品久久| 欧美大尺度在线观看| 欧美喷水视频| 久久久久久9999| 欧美国产日韩在线| 午夜在线成人av| 久久精品国产综合精品| 在线一区二区日韩| 久久精品最新地址| 一区二区三区免费观看| 久久国产欧美日韩精品| 日韩一区二区精品葵司在线| 亚洲女人天堂成人av在线| 亚洲成色最大综合在线| 亚洲无毛电影| 亚洲日本成人网| 亚洲欧美制服中文字幕| 亚洲免费黄色| 久久嫩草精品久久久久| 亚洲免费在线看| 欧美jizz19hd性欧美| 欧美专区一区二区三区| 欧美黑人国产人伦爽爽爽| 久久精选视频| 国产精品a级| 亚洲精品久久久久久久久久久久| 国产在线拍偷自揄拍精品| 一本色道久久综合一区| 91久久久一线二线三线品牌| 香蕉免费一区二区三区在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 欧美亚洲自偷自偷| 午夜精品影院| 国产精品99一区二区| 亚洲激情校园春色| 亚洲欧洲一区二区在线观看| 久久国产免费| 久久精品女人天堂| 国产日韩精品一区二区浪潮av| 99av国产精品欲麻豆| 亚洲免费久久| 欧美激情综合五月色丁香小说 | 一区二区高清视频在线观看| 亚洲国产另类久久精品| 久久久精品五月天| 久久精品亚洲国产奇米99| 国产精品草莓在线免费观看| 亚洲免费观看高清完整版在线观看熊| 91久久精品国产91久久性色| 免费一级欧美在线大片| 欧美大片一区二区| 亚洲国产老妈| 欧美粗暴jizz性欧美20| 亚洲高清不卡| 日韩一级成人av| 欧美日韩的一区二区| 日韩视频欧美视频| 亚洲一区二区在线播放| 国产精品久久夜| 午夜视频一区在线观看| 久久阴道视频| 亚洲成色精品| 欧美日韩成人激情| 亚洲最新中文字幕| 欧美伊人精品成人久久综合97| 国产欧美日本一区二区三区| 久久精品国产精品亚洲| 欧美激情一区二区在线| 99在线|亚洲一区二区| 欧美日韩在线播| 午夜欧美大片免费观看| 美日韩精品免费观看视频| 亚洲理伦在线| 国产精品自拍在线| 美女视频黄a大片欧美| 最新日韩av| 欧美综合第一页| 亚洲国产另类精品专区| 国产精品久久久久久久久久免费看 | 毛片av中文字幕一区二区| 亚洲国产清纯| 欧美一区二区三区电影在线观看| 国产一区二区电影在线观看 | 国产精品美女午夜av| 欧美一区高清| 亚洲精品视频在线播放| 久久久久国产精品一区二区| 最新国产成人av网站网址麻豆| 欧美视频日韩视频在线观看| 久久精品在线播放| 一区二区三区视频在线观看| 裸体丰满少妇做受久久99精品| 日韩一二三在线视频播| 国内精品久久久久影院 日本资源| 欧美高清在线一区二区| 午夜天堂精品久久久久| 亚洲精品在线二区| 麻豆国产精品va在线观看不卡 | 一区免费观看| 国产精品久久久爽爽爽麻豆色哟哟| 久久综合色播五月| 性刺激综合网| 一区二区国产日产| 亚洲免费av电影| 久久九九热免费视频| 亚洲深夜av| 亚洲精品久久| 亚洲国产福利在线| 久久综合久色欧美综合狠狠| 午夜精品国产精品大乳美女| 日韩一区二区免费高清| 亚洲国产日韩综合一区| 极品中文字幕一区| 国产精品一二三视频| 欧美午夜一区二区福利视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美一区二区三区久久精品茉莉花| 中国成人黄色视屏| 日韩一级精品| 日韩视频在线免费| 亚洲精品字幕| 亚洲精品国产精品国产自| 欧美激情亚洲| 亚洲国产精品久久久久婷婷老年| 欧美大片免费观看| 欧美国产在线电影| 亚洲大片免费看| 亚洲国产高清一区| 亚洲黄色成人| a91a精品视频在线观看| 夜夜嗨av一区二区三区中文字幕| 亚洲精品综合精品自拍| 一本久久a久久精品亚洲| 宅男噜噜噜66一区二区 | 久久精品国产免费观看| 久久国产高清| 久久亚洲二区| 免费成人黄色| 亚洲欧洲另类| 亚洲天堂黄色| 久久成人资源| 免费短视频成人日韩| 欧美日韩精品一区视频| 欧美性猛交一区二区三区精品| 国产精品户外野外| 国产日韩高清一区二区三区在线| 国产亚洲毛片在线| 亚洲国产精品传媒在线观看 | 亚洲午夜国产成人av电影男同| 亚洲午夜小视频| 欧美在线|欧美| 欧美成人官网二区| 亚洲人成在线播放| 亚洲欧美日本日韩| 美女视频黄a大片欧美| 欧美日韩播放| 国产一区视频在线观看免费| 亚洲国产精品毛片| 亚洲欧美另类国产| 欧美 日韩 国产精品免费观看| 91久久香蕉国产日韩欧美9色| 亚洲视频导航| 久久一区视频| 国产精品一区二区你懂得| 精品99一区二区三区| 在线视频亚洲| 欧美aaa级| 亚洲一区二区三区四区五区黄| 久久婷婷久久| 国产精品自拍三区| 日韩午夜精品| 久久综合一区二区三区| 一本色道久久综合亚洲二区三区| 久久久久国产精品人| 国产精品第一页第二页第三页| 亚洲国产成人在线| 久久久成人网| 一区二区三区日韩精品| 免费短视频成人日韩| 国内外成人在线| 亚洲欧美日本在线| 亚洲伦理在线观看| 欧美va亚洲va日韩∨a综合色| 亚洲欧美中文日韩v在线观看| 亚洲精品视频在线看| 久久手机免费观看|