久久久国产精品秘人口麻豆|永久免费AV无语国产|人成电影免费中文字幕|久久AV嫩草影院2

    1. <dfn id="yitbn"><samp id="yitbn"><progress id="yitbn"></progress></samp></dfn>

          <div id="yitbn"></div>

          1. 首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導(dǎo)航
            您現(xiàn)在的位置: 考試吧 > 計算機(jī)等級考試 > 計算機(jī)二級考試 > C加加 > 復(fù)習(xí)資料 > 正文

            計算機(jī)二級C++語言程序設(shè)計考試輔導(dǎo)筆記(八)

            來源:考試吧 2018-03-26 10:05:12 要考試,上考試吧! 萬題庫
            “計算機(jī)二級C++語言程序設(shè)計考試輔導(dǎo)筆記(八)”供考生參考。更多計算機(jī)等級考試內(nèi)容請訪問考試吧計算機(jī)等級考試網(wǎng)。

              四、轉(zhuǎn)換函數(shù)的調(diào)用

              C++里調(diào)用轉(zhuǎn)換函數(shù)有三種形式:第一種是隱式轉(zhuǎn)換,例如編譯器需要一個Date對象,而程序提供的是CustomDate對象,編譯器會自動調(diào)用合適的轉(zhuǎn)換函數(shù)。另外兩種都是需要在程序代碼中明確給出的顯式轉(zhuǎn)換。C++強(qiáng)制類型轉(zhuǎn)換是一種,還有一種是顯式調(diào)用轉(zhuǎn)換構(gòu)造函數(shù)和成員轉(zhuǎn)換函數(shù)。下面的程序給出了三中轉(zhuǎn)換形式:

              #include iostream.h

              class CustomDate

              {

              public:

              int da, yr;

              CustomDate(int d=0,int y=0) {da=d; yr=y;}

              void display()

              {

              cout< }

              };

              class Date

              {

              int mo, da, yr;

              public:

              Date(int m,int d,int y)

              {

              mo=m; da=d; yr=y;

              }

              operator CustomDate();

              };

              Date::operator CustomDate()

              {

              static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};

              CustomDate cd(0,yr);

              for(int i=0;i cd.da+=da;

              return cd;

              }

              int main()

              {

              Date dt(11,17,89);

              CustomDate cd;

              cd = dt;

              cd.display();

              cd = (CustomDate) dt;

              cd.display();

              cd = CustomDate(dt);

              cd.display();

              return 0;

              }

              五、轉(zhuǎn)換發(fā)生的情形

              上面的幾個例子都是通過不能類型對象之間的相互賦值來調(diào)用轉(zhuǎn)換函數(shù),還有幾種調(diào)用的可能:

              參數(shù)傳遞

              初始化

              返回值

              表達(dá)式語句

              這些情況下,都有可能調(diào)用轉(zhuǎn)換函數(shù)。

              下面的程序不難理解,就不分析了。

              #include iostream.h

              class CustomDate

              {

              public:

              int da, yr;

              CustomDate() {}

              CustomDate(int d,int y) { da=d; yr=y;}

              void display()

              {

              cout< }

              };

              class Date

              {

              int mo, da, yr;

              public:

              Date(int m,int d,int y) { mo=m; da=d; yr=y; }

              operator CustomDate();

              };

              Date::operator CustomDate()

              {

              static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};

              CustomDate cd(0,yr);

              for (int i=0;i cd.da+=da;

              return cd;

              }

              class Tester

              {

              CustomDate cd;

              public:

              explicit Tester(CustomDate c) { cd=c; }

              void display() { cd.display(); }

              };

              void dispdate(CustomDate cd)

              {

              cd.display();

              }

              CustomDate rtndate()

              {

              Date dt(9,11,1);

              return dt;

              }

              int main()

              {

              Date dt(12,24,3);

              CustomDate cd;

              cd = dt;

              cd.display();

              dispdate(dt);

              Tester ts(dt);

              ts.display();

              cd = rtndate();

              cd.display();

              return 0;

              }

              六、顯式構(gòu)造函數(shù)

              注意上面Tester類的構(gòu)造函數(shù)前面有一個explicit修飾符。如果不加上這個關(guān)鍵字,那么在需要把CustomDate對象轉(zhuǎn)換成Tester對象時,編譯器會把該函數(shù)當(dāng)作轉(zhuǎn)換構(gòu)造函數(shù)來調(diào)用。但是有時候,并不想把這種只有一個參數(shù)的構(gòu)造函數(shù)用于轉(zhuǎn)換目的,而僅僅希望用它來顯式地初始化對象,此時,就需要在構(gòu)造函數(shù)前加explicit。如果在聲明了Tester對象以后使用了下面的語句將導(dǎo)致一個錯誤:

              ts=jd; //error

              這個錯誤說明,雖然Tester類中有一個以Date型變量為參數(shù)的構(gòu)造函數(shù),編譯器卻不會把它看作是從Date到Tester的轉(zhuǎn)換構(gòu)造函數(shù),因為它的聲明中包含了explicit修飾符。

              七、表達(dá)式內(nèi)部的轉(zhuǎn)換

              在表達(dá)式內(nèi)部,如果發(fā)現(xiàn)某個類型和需要的不一致,就會發(fā)生錯誤。數(shù)字類型的轉(zhuǎn)換是很簡單,這里就不舉例了。下面的程序是把Date對象轉(zhuǎn)換成長整型值。

              #include iostream.h

              class Date

              {

              int mo, da, yr;

              public:

              Date(int m,int d,int y)

              {

              mo=m; da=d; yr=y;

              }

              operator long();

              };

              Date::operator long()

              {

              static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};

              long days=yr;

              days*=365;

              days+=(yr-1900)/4; //從1900年1月1日開始計算

              for(int i=0;i days+=da;

              return days;

              }

              int main()

              {

              Date today(12,24,2003);

              const long ott=123;

              long sum=ott+today;

              cout< return 0;

              }

              在表達(dá)式中,當(dāng)需要轉(zhuǎn)換的對象可以轉(zhuǎn)換成某個數(shù)字類型,或者表達(dá)式調(diào)用了作用于某個類的重載運算符時,就會發(fā)生隱式轉(zhuǎn)換。運算符重載以后再學(xué)習(xí)。

            掃描/長按二維碼幫助考試通關(guān)
            2018年等考報考資訊
            2018等考各科通關(guān)技巧
            2018各科最新預(yù)測試卷
            2018等考各科備考資料

            微信搜索"考試吧"了解更多考試資訊、下載備考資料

            上一頁  1 2 3 

              相關(guān)推薦:

              2018年全國計算機(jī)等級考試必做試題匯總(各科目)

              2018年全國計算機(jī)等級考試復(fù)習(xí)知識點匯總(各科目)

              2018年全國計算機(jī)等級考試時間|教材目錄(2018年版)

              2018全國計算機(jī)等級考試備考經(jīng)驗及應(yīng)試技巧匯總

              考試內(nèi)容|考試大綱|2018計算機(jī)等級考試科目

              歷年真題匯總|考試吧策劃:2018年計算機(jī)等級考試報考指南

            文章搜索
            萬題庫小程序
            萬題庫小程序
            ·章節(jié)視頻 ·章節(jié)練習(xí)
            ·免費真題 ·?荚囶}
            微信掃碼,立即獲取!
            掃碼免費使用
            版權(quán)聲明:如果計算機(jī)等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@eeeigo.com,我們將會及時處理。如轉(zhuǎn)載本計算機(jī)等級考試網(wǎng)內(nèi)容,請注明出處。
            Copyright © 2004- 考試吧計算機(jī)等級考試網(wǎng) 出版物經(jīng)營許可證新出發(fā)京批字第直170033號 
            京ICP證060677 京ICP備05005269號 中國科學(xué)院研究生院權(quán)威支持(北京)
            在線模擬試題
            考證通關(guān)殺器
            考試最新資訊
            學(xué)
            一次通關(guān)技巧