黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

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

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

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

  四、轉換函數的調用

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

  #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;

  }

  五、轉換發生的情形

  上面的幾個例子都是通過不能類型對象之間的相互賦值來調用轉換函數,還有幾種調用的可能:

  參數傳遞

  初始化

  返回值

  表達式語句

  這些情況下,都有可能調用轉換函數。

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

  #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;

  }

  六、顯式構造函數

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

  ts=jd; //error

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

  七、表達式內部的轉換

  在表達式內部,如果發現某個類型和需要的不一致,就會發生錯誤。數字類型的轉換是很簡單,這里就不舉例了。下面的程序是把Date對象轉換成長整型值。

  #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;

  }

  在表達式中,當需要轉換的對象可以轉換成某個數字類型,或者表達式調用了作用于某個類的重載運算符時,就會發生隱式轉換。運算符重載以后再學習。

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

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

上一頁  1 2 3 

  相關推薦:

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

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

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

  2018全國計算機等級考試備考經驗及應試技巧匯總

  考試內容|考試大綱|2018計算機等級考試科目

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

0
收藏該文章
0
收藏該文章
文章搜索
萬題庫小程序
萬題庫小程序
·章節視頻 ·章節練習
·免費真題 ·模考試題
微信掃碼,立即獲取!
掃碼免費使用
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網 出版物經營許可證新出發京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧
主站蜘蛛池模板: 久久厕所精品国产精品亚洲 | 久久久网 | 最刺激黄a大片免费观看 | 日本性插| 91导航在线 | 天天草综合网 | 五月天狠狠干 | 欧美日韩性视频一区二区三区 | 极品美女啪啪无套 | 免费网站黄色 | 午夜看片在线观看 | 亚洲第一伊人 | 成人动漫在线免费观看 | 日本三级在在线观看 | 日韩欧美一区二区三区免费观看 | 99久久中文字幕伊人 | 波多野结衣福利 | 欧洲在线观看在线视频吗 | 国产黄色在线观看 | 国产激情视频在线播放 | 免播放器在线视频 | 99久久综合狠狠综合久久 | 国产黄色片视频 | 亚洲国产一区二区a毛片 | 人人干日日操 | 性8sex亚洲区入口 | 青春草在线免费视频 | 精品videoss另类日本 | 国产视频久 | 日韩视频网址 | 国产亚洲一区二区三区不卡 | 日本中文字幕在线播放 | 午夜大片免费完整在线看 | 成人软件网18免费视频 | 美女一级毛片免费看看 | 在线观看日韩精品 | 农村寡妇野外情一级毛片 | 久久精品视频一区 | 免费观看黄色a一级录像 | 国产高清在线a视频大全 | 国产欧美一区二区三区久久 |