亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 02.2.10 c++類的設(shè)計(jì)習(xí)慣及頭文件重復(fù)包含問題的解決.txt

?? 網(wǎng)上第一本以TXT格式的VC++深入詳解孫鑫的書.全文全以TXT格式,并每一章節(jié)都分了目錄,清晰易讀
?? TXT
字號(hào):
2.2.10  C++類的設(shè)計(jì)習(xí)慣及頭文件重復(fù)包含問題的解決
在設(shè)計(jì)一個(gè)類的時(shí)候,通常是將類的定義及類成員函數(shù)的聲明放到頭文件(即.h文件)中,將類中成員函數(shù)的實(shí)現(xiàn)放到源文件(即.cpp)中。對(duì)于animal類需要animal.h和animal.cpp兩個(gè)文件,同樣,對(duì)于fish類需要fish.h和fish.cpp。對(duì)于main()函數(shù),我們把它單獨(dú)放到EX10.cpp文件中。

往一個(gè)現(xiàn)有工程添加頭文件(.h文件)或源文件(.cpp文件)有兩種方式:一種是在打開的工程中,單擊【File】→【New】,在左邊的Files標(biāo)簽頁下,選擇C++ Header File或C++ Source File,然后在右邊的File文本框中,輸入頭文件或源文件的文件名,如animal.h或animal.cpp,單擊【OK】按鈕。如圖2.16所示。



圖2.16  新建頭文件或源文件

另一種方式是在EX10的工程目錄下,單擊鼠標(biāo)右鍵,選擇【新建】→【文本文檔】,然后將“新建文本文檔.txt”改名為“animal.h”(因.h和.cpp文件都是文本格式的文件),依同樣的方法,建立animal.cpp、fish.h、fish.cpp三個(gè)文件,然后在打開的工程中,選擇【Project】→【Add To Project】→【Files】,選擇animal.h、animal.cpp、fish.h、fish.cpp這四個(gè)文件,單擊【OK】按鈕,如圖2.17所示。



圖2.17  添加頭文件和源文件到工程中

代碼如例2-24所示。

例2-24 

animal.h

//在頭文件中包含類的定義及類成員函數(shù)的聲明

class animal

{

public:

    animal();

    ~animal();

    void eat();

    void sleep();

    virtual void breathe();

};

 

animal.cpp

//在源文件中包含類中成員函數(shù)的實(shí)現(xiàn)

 

#include "animal.h"         //因?yàn)樵诰幾ganimal.cpp時(shí),編譯器不知道animal到底

                            是什么,所以要包含animal.h,這樣,編譯器就知道animal

                            是一種類的類型

#include <iostream.h>       //在包含頭文件時(shí),<>和""有什么區(qū)別?<>和""表示編譯器

                            在搜索頭文件時(shí)的順序不同,<>表示從系統(tǒng)目錄下開始搜索,

                            然后再搜索PATH環(huán)境變量所列出的目錄,不搜索當(dāng)前目錄;

                            ""是表示先從當(dāng)前目錄搜索,然后是系統(tǒng)目錄和PATH環(huán)境

                                 變量所列出的目錄。所以如果我們知道頭文件在系統(tǒng)目錄下

                            就可以直接用<>,這樣可以加快搜索速度

animal::animal()            //::叫做作用域標(biāo)識(shí)符,用于指明一個(gè)函數(shù)屬于哪個(gè)類或一

                            個(gè)數(shù)據(jù)成員屬于哪個(gè)類。::前面如果不跟類名,表示是全局

{                           函數(shù)(即非成員函數(shù))或全局?jǐn)?shù)據(jù)

}                           

 

animal::~animal()

{

}

 

void animal::eat()          //注意:雖然我們?cè)诤瘮?shù)體中什么也沒寫,但仍然是實(shí)現(xiàn)了

                            這個(gè)函數(shù)

{

}

 

void animal::sleep()

{

}

 

void animal::breathe()      //注意,在頭文件(.h文件)中加了virtual后,在源文

                            件(.cpp文件)中就不必再加virtual了

{                           

 

    cout<<"animal breathe"<<endl;

}

 

fish.h

#include "animal.h"         //因fish類從animal類繼承而來,要讓編譯器知道

                            animal是一種類的類型,就要包含animal.h頭文件

class fish:public animal

{

public:

     void breathe();

};

 

fish.cpp

#include "fish.h"

#include <iostream.h>

void fish::breathe()

{

    cout<<"fish bubble"<<endl;

}

 

EX10.cpp

#include "animal.h"

#include "fish.h"

void fn(animal *pAn)

{

    pAn->breathe();

}

void main()

{

    animal *pAn;

    fish fh;

    pAn=&fh;

    fn(pAn);

}

現(xiàn)在我們就可以按下鍵盤上的F7功能鍵編譯整個(gè)工程了,編譯結(jié)果如下:



為什么會(huì)出現(xiàn)類重復(fù)定義的錯(cuò)誤呢?請(qǐng)讀者仔細(xì)查看EX10.cpp文件,在這個(gè)文件中包含了animal.h和fish.h這兩個(gè)頭文件。當(dāng)編譯器編譯EX10.cpp文件時(shí),因?yàn)樵谖募邪薬nimal.h頭文件,編譯器展開這個(gè)頭文件,知道animal這個(gè)類定義了,接著展開fish.h頭文件,而在fish.h頭文件中也包含了animal.h,再次展開animal.h,于是animal這個(gè)類就重復(fù)定義了。

讀者可以測(cè)試一下,如果我們多次包含iostream.h這個(gè)頭文件,也不會(huì)出現(xiàn)上面的錯(cuò)誤。要解決頭文件重復(fù)包含的問題,可以使用條件預(yù)處理指令。修改后的頭文件如下:

animal.h

#ifndef ANIMAL_H_H      //我們一般用#define定義一個(gè)宏,是為了在程序中使用,使程

                            序更加簡(jiǎn)潔,維護(hù)更加方便,然而在此處,我們只是為了判斷

#define ANIMAL_H_H      ANIMAL_H_H是否定義,以此來避免類重復(fù)定義,因此我們沒有為

                        其定義某個(gè)具體的值。在選擇宏名時(shí),要選用一些不常用的名字,

class animal            因?yàn)槲覀兊某绦蚪?jīng)常會(huì)跟別人寫的程序集成,如果選用一個(gè)很常用

                        的名字(例如:X),有可能會(huì)造成一些不必要的錯(cuò)誤

{

public: 

     animal();

     ~animal();

     void eat();

     void sleep();

     virtual void breathe();

};

#endif

 

fish.h

#include "animal.h"

#ifndef FISH_H_H

#define FISH_H_H

class fish:public animal

{

public:

     void breathe();

};

#endif

我們?cè)倏碋X10.cpp的編譯過程。當(dāng)編譯器展開animal.h頭文件時(shí),條件預(yù)處理指令判斷ANIMAL_H_H沒有定義,于是就定義它,然后繼續(xù)執(zhí)行,定義了animal這個(gè)類;接著展開fish.h頭文件,而在fish.h頭文件中也包含了animal.h,再次展開animal.h,這個(gè)時(shí)候條件預(yù)處理指令發(fā)現(xiàn)ANIMAL_H_H已經(jīng)定義,于是跳轉(zhuǎn)到#endif,執(zhí)行結(jié)束。

通過分析,我們發(fā)現(xiàn)在這次的編譯過程中,animal這個(gè)類只定義了一次。

提示:Windows 2000初始安裝完畢后,對(duì)于已知文件類型的擴(kuò)展名是隱藏的,例如:“test.txt”這個(gè)文件,在資源瀏覽器中看到的是“test”,在這種情況下,修改其文件名為“test.cpp”時(shí),實(shí)際的文件名是“test.cpp.txt”,仍然是文本文件。因此在Win2000下做開發(fā)時(shí),要取消“隱藏已知文件類型的擴(kuò)展名”這一選項(xiàng)。

操作步驟:在資源瀏覽器(或我的電腦)中,選擇菜單中的“工具->文件夾選項(xiàng)(O)…”,選擇“查看”標(biāo)簽頁,將滾動(dòng)欄拖到底端,將“隱藏已知文件類型的擴(kuò)展名”復(fù)選框中的對(duì)號(hào)(√)取消掉,單擊“確定”按鈕。

 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图制服丝袜| 性欧美疯狂xxxxbbbb| 一本久久a久久免费精品不卡| 亚洲国产精品一区二区久久恐怖片 | 国产成人欧美日韩在线电影| 亚洲色图都市小说| 欧美一级精品在线| 91免费小视频| 国产精品18久久久久久vr| 夜夜爽夜夜爽精品视频| 国产女人18水真多18精品一级做| 欧美日韩一区二区三区在线 | 91黄色免费版| 国产精品一区二区在线观看不卡 | 18欧美亚洲精品| 亚洲精品一区二区在线观看| 色婷婷香蕉在线一区二区| 国产精品正在播放| 美美哒免费高清在线观看视频一区二区| 亚洲天天做日日做天天谢日日欢| 久久久综合九色合综国产精品| 欧美精品日韩精品| 欧美在线你懂的| 99久精品国产| 成人av手机在线观看| 国产在线播放一区三区四| 首页综合国产亚洲丝袜| 一区二区三区日韩精品| 亚洲欧美一区二区久久| 国产精品美女视频| 日本一二三不卡| 国产日产精品1区| 久久久青草青青国产亚洲免观| 欧美一区二区三区视频在线| 欧美日韩亚州综合| 欧美在线啊v一区| 色av成人天堂桃色av| 91老师片黄在线观看| 99久久国产免费看| 99久久精品国产一区二区三区| 丁香天五香天堂综合| 高清日韩电视剧大全免费| 国产成人一级电影| 豆国产96在线|亚洲| 国产成人亚洲精品青草天美| 国产精品66部| 成人激情免费网站| 99久免费精品视频在线观看| 国产91在线观看丝袜| 丁香桃色午夜亚洲一区二区三区| 日韩午夜电影在线观看| 制服.丝袜.亚洲.另类.中文| 欧美一个色资源| 欧美不卡一区二区三区| 久久久久久久久久久久久夜| 国产无遮挡一区二区三区毛片日本| 久久久777精品电影网影网 | 另类小说色综合网站| 蜜臀av一区二区在线观看| 麻豆精品精品国产自在97香蕉| 蜜芽一区二区三区| 精品午夜久久福利影院| 国产福利一区二区| 97久久人人超碰| 欧美性生活久久| 欧美电影精品一区二区| 久久久影视传媒| 亚洲人成人一区二区在线观看| 一区二区视频免费在线观看| 亚洲成人精品一区| 九九视频精品免费| 成人动漫一区二区三区| 在线亚洲一区观看| 欧美一区二区三区四区在线观看| www国产成人| 亚洲欧洲综合另类在线| 日本在线观看不卡视频| 国产乱国产乱300精品| 99久久综合精品| 69久久夜色精品国产69蝌蚪网| 久久视频一区二区| 亚洲综合久久久| 精品影视av免费| 色视频一区二区| 精品国产乱码久久| 亚洲欧美日韩人成在线播放| 日本v片在线高清不卡在线观看| 国产一区二区三区四| 91福利在线播放| 久久影音资源网| 亚洲成人动漫av| 国产成人午夜高潮毛片| 欧美视频中文字幕| 欧美极品少妇xxxxⅹ高跟鞋| 午夜成人免费电影| 99视频国产精品| 精品sm捆绑视频| 亚洲综合在线五月| 国产aⅴ精品一区二区三区色成熟| 欧美中文字幕一区二区三区亚洲| 久久精品男人天堂av| 亚洲福利视频导航| www.欧美色图| 久久综合九色欧美综合狠狠| 一区二区三区中文字幕| 国产大陆亚洲精品国产| 7777精品伊人久久久大香线蕉| **性色生活片久久毛片| 国产露脸91国语对白| 欧美喷潮久久久xxxxx| 自拍偷拍欧美激情| 国产激情一区二区三区| 日韩欧美成人一区| 午夜精品久久久久久久久久久| 99精品国产视频| 欧美国产激情二区三区| 久久国产精品露脸对白| 7777精品伊人久久久大香线蕉完整版 | 天天射综合影视| 一本大道久久a久久精二百| 国产精品私人影院| 国产一区二区美女| 精品国产免费视频| 男男视频亚洲欧美| 91精品国产欧美日韩| 舔着乳尖日韩一区| 欧美久久一二三四区| 亚洲网友自拍偷拍| 欧美性色黄大片| 樱花影视一区二区| 色av成人天堂桃色av| 亚洲精品视频免费看| 91浏览器入口在线观看| 亚洲桃色在线一区| 91免费在线视频观看| 亚洲精品乱码久久久久久黑人| 成人av电影在线播放| 国产精品乱子久久久久| 成人国产精品免费观看| 欧美激情一区二区| 99热在这里有精品免费| 亚洲三级小视频| 91官网在线观看| 午夜精品免费在线| 91精品免费在线观看| 另类小说色综合网站| 久久蜜桃一区二区| 风间由美一区二区av101| 国产精品女主播在线观看| jlzzjlzz亚洲日本少妇| 一区二区三区在线视频观看58| 91黄色免费版| 日本aⅴ精品一区二区三区| 欧美大片日本大片免费观看| 国产综合久久久久久鬼色| 国产欧美精品区一区二区三区| av中文字幕亚洲| 亚洲精品第一国产综合野| 欧美日韩国产色站一区二区三区| 午夜精品免费在线观看| 精品久久久久久久久久久久久久久| 国产精品一区在线观看你懂的| 中文在线资源观看网站视频免费不卡| aaa亚洲精品| 亚洲一本大道在线| 日韩一二在线观看| 高清成人在线观看| 亚洲男女毛片无遮挡| 91精品国产高清一区二区三区 | 国产精品护士白丝一区av| 色系网站成人免费| 青椒成人免费视频| 久久久久久电影| 91精品1区2区| 经典一区二区三区| 成人免费在线视频| 6080国产精品一区二区| 懂色av中文字幕一区二区三区 | 中文字幕在线视频一区| 欧美日韩免费在线视频| 国产一区三区三区| 亚洲狠狠爱一区二区三区| 欧美xxx久久| 日本久久一区二区| 久久丁香综合五月国产三级网站| 亚洲欧洲日本在线| 精品国产123| 精品视频在线免费| 成人理论电影网| 秋霞av亚洲一区二区三| 亚洲欧美日韩中文播放| 精品国产一区二区三区忘忧草| 色狠狠综合天天综合综合| 九色综合狠狠综合久久| 亚洲综合视频在线| 欧美国产日韩亚洲一区| 91精品国产欧美一区二区18| 91免费在线看| 粉嫩蜜臀av国产精品网站| 日韩av成人高清|