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

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平
駕駛員 | 網絡編輯
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > C加加 > 復習資料 > 正文

計算機等考二級C++輔導筆記:類的其他幾點問題

考試吧整理了“計算機等考二級C++輔導筆記”,幫助考生備考。

  四、對const修飾符的簡單說明

  如果一個對象被聲明為常量,那么該對象就不可以調用類當中任何非常量型的成員函數(除了被編譯器隱式調用的構造函數和析構函數)。看下面的代碼;

  #include iostream.h

  class Date

  {

  int month,day,year;

  public:

  Date(int m,d,y):month(m),day(d),year(y) {}

  void display()

  {

  cout< }

  }

  int main()

  {

  const Date dt(4,7,2004);

  dt.display(); //error

  return 0;

  }

  這個程序盡管編譯時沒有問題,但運行時卻出錯了。這是因為常量對象不能調用非常量函數。編譯器只看函數的聲明,而不在乎函數的具體實現。實際上函數的實現可以在程序中的任何地方,也可以是在另一個源代碼文件中,這就超過了編譯器的當前可見范圍。

  //date.h

  class Date

  {

  int month,day,year;

  public:

  Date(int m,d,y);

  void display();

  };

  //date.cpp

  #include iostream.h

  #include date.h

  Date::Date(int m,d,y):month(m),day(d),year(y) {}

  void Date::display()

  {

  cout< }

  //program.cpp

  #include iostream.h

  #include date.cpp

  int main()

  {

  const Date dt(4,7,2004);

  dt.display();

  return 0;

  }

  解決出錯的問題有兩個方法:第一是聲明display()函數為常量型的

  //in date.h

  void display() const

  //int date.cpp

  void Date::display() const

  {

  cout< }

  另一個解決方式就是省略掉Date對象聲明里的const修飾符。

  Date dt(4,7,2004);

  還有另一個容易出錯的地方:

  void abc(const Date& dt)

  {

  dt.display(); //error 提示display沒有const修飾符

  }

  函數abc()聲明了一個Date對象的常量引用,這說明該函數不會修改傳遞進來的參數的值。如果Date::display()函數不是常量型的,那么在函數abc()里就不能調用它,因為編譯器會認為Date::display()函數有可能會修改常量的值。

  不論類對象是否是常量型的,它必須修改某個數據成員的值時,ANSI委員會設立了mutable關鍵字。

  五、可變的數據成員

  假設需要統計某個對象出現的次數,不管它是否是常量。那么類當中就應該有一個用來計數的整型數據成員。只要用mutable修飾符來聲明該數據成員,一個常量型的成員函數就可以修改它的值。

  #include iostream.h

  class AValue

  {

  int val;

  mutable int rptct;

  public:

  AValue(int v) : val(v), rptct(0) { }

  ~AValue()

  {

  cout< }

  void report() const;

  };

  void AValue::report() const

  {

  rptct++;

  cout << val << endl;

  }

  int main()

  {

  const AValue aval(123);

  aval.report();

  aval.report();

  aval.report();

  return 0;

  }

上一頁  1 2 3 4 5  下一頁
  相關推薦:2010年9月計算機等級考試試題及答案解析專題

       預告:名師解析2010年9月計算機等級考試試題答案

       2010年9月計算機等級考試成績查詢時間及入口

文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 国产在线一二三区 | 中文日韩亚洲欧美制服 | 在线欧美国产 | 黄色一级大片网站 | 免费在线国产视频 | 日本欧美高清视频 | 日本一区二区三区在线 视频 | 亚洲日本在线观看网址 | 久久怡红院亚欧成人影院 | 99re5精品视频在线观看 | 国产日韩欧美另类 | 欧美成人怡红院在线观看 | 成人毛片免费观看视频大全 | 九九在线精品视频xxx | 波多野结衣178部中文字幕 | 男人午夜网站 | 最近的中文字幕视频完整 | 日韩精品免费观看 | 一级国产特黄aa大片 | 日本爽爽爽爽爽爽免费 | 日日摸狠狠的摸夜夜摸 | 亚洲国产精品毛片∧v卡在线 | 日产精品一二三四区国产 | 中文字幕在线观看免费视频 | 噜噜色综合噜噜色噜噜色 | 欧美九九视频 | 亚洲欧美日韩一区二区在线观看 | 欧美第一视频 | 九九精品免视看国产成人 | 污视频网站免费看 | 猫色网站 | 不卡视频在线播放 | 黄色男女视频 | 一级在线 | 欧洲 | 男人看片资源 | 精品久久久久久中文 | 曰皮视频在线播放免费的 | 成人亚洲性情网站www在线观看 | 黄色成人在线观看 | 伊人五月婷婷 | 国产免费啪视频观看网站 |