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

計算機二級C++語言程序設計考試輔導筆記(八)

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

  二、成員轉換函數(shù)

  成員轉換函數(shù)把該類的對象轉換為其他數(shù)據(jù)類型的對象。在成員轉換函數(shù)的聲明中要用到關鍵字operator。這樣聲明一個成員轉換函數(shù):

  operator aaa();

  在這個例子中,aaa就是要轉換成的數(shù)據(jù)類型的說明符。這里的類型說明符可以是任何合法的C++類型,包括其他的類。如下來定義成員轉換函數(shù);

  Classname::operator aaa()

  類名標識符是聲明了該函數(shù)的類的類型說明符。上面定義的Date類并不能把該類的對象轉換回time_t型變量,但可以把它轉換成一個長整型值,計算從2000年1月1日到現(xiàn)在的天數(shù)。

  #include iostream.h

  class Date

  {

  int mo,da,yr;

  public:

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

  operator int(); //聲明

  };

  Date::operator int() //定義

  {

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

  int days=yr-2000;

  days*=365;

  days+=(yr-2000)/4;

  for(int i=0;i days+=dys[i];

  days+=da;

  return days;

  }

  int main()

  {

  Date now(12,24,2003);

  int since=now;

  cout< return 0;

  }

  三、類的轉換

  上面兩個例子都是C++類對象和內(nèi)部數(shù)據(jù)對象之間的相互轉換。也可以定義轉換函數(shù)來實現(xià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=0,int d=0,int y=0) {mo=m; da=d; yr=y;}

  Date(const CustomDate&); //轉換構造函數(shù)

  operator CustomDate(); //成員轉換函數(shù)

  void display()

  {

  cout< }

  };

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

  Date::Date(const CustomDate& jd)

  {

  yr=jd.yr;

  da=jd.da;

  for(mo=0;mo<11;mo++)

  if(da>dys[mo]) da-=dys[mo];

  else break;

  mo++;

  }

  Date::operator CustomDate()

  {

  CustomDate cd(0,yr);

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

  return cd;

  }

  int main()

  {

  Date dt(12,24,3);

  CustomDate cd;

  cd = dt; //調(diào)用成員轉換函數(shù)

  cd.display();

  dt = cd; //調(diào)用轉換構造函數(shù)

  dt.display();

  return 0;

  }

  這個例子中有兩個類CustomDate和Date,CustomDate型日期包含年份和天數(shù)。

  這個例子沒有考慮閏年情況。但是在實際構造一個類時,應該考慮到所有問題的可能性。

  在Date里中具有兩種轉換函數(shù),這樣,當需要從Date型變?yōu)镃ustomDate型十,可以調(diào)用成員轉換函數(shù);反之可以調(diào)用轉換構造函數(shù)。

  不能既在Date類中定義成員轉換函數(shù),又在CustomDate類里定義轉換構造函數(shù)。那樣編譯器在進行轉換時就不知道該調(diào)用哪一個函數(shù),從而出錯。

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

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

  相關推薦:

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

  2018年全國計算機等級考試復習知識點匯總(各科目)

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

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

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

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

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