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

首頁 - 網校 - 萬題庫 - 直播 - 雄鷹 - 團購 - 書城 - 模考 - 學習通 - 導航 - 510 -
首頁考試吧網校萬題庫直播雄鷹510團購書城模考論壇實用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓
專升本
自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托福考試
托業考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務 員
導游考試
物 流 師
出版資格
單 證 員
報 關 員
外 銷 員
價格鑒證
網絡編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業培訓
社會工作者
銀行從業
教師資格
營養師
保險從業
普 通 話
證券從業
跟 單 員
秘書資格
電子商務
期貨考試
國際商務
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業水平
衛生資格 執業醫師 執業藥師 執業護士
會計從業資格
基金從業資格
統計從業資格
經濟師
精算師
統計師
會計職稱
法律顧問
ACCA考試
初級會計職稱
資產評估師
高級經濟師
注冊會計師
高級會計師
美國注冊會計師
審計師考試
國際內審師
注冊稅務師
理財規劃師
一級建造師
安全工程師
設備監理師
公路監理師
公路造價師
二級建造師
招標師考試
物業管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質量工程師
巖土工程師
注冊給排水
造價員考試
注冊計量師
環保工程師
化工工程師
暖通工程師
咨詢工程師
結構工程師
城市規劃師
材料員考試
消防工程師
監理工程師
房地產估價
土地估價師
安全評價師
房地產經紀人
投資項目管理師
環境影響評價師
土地登記代理人
寶寶起名
繽紛校園
實用文檔
入黨申請
英語學習
思想匯報
作文大全
工作總結
求職招聘 論文下載 直播課堂
您現在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > C加加 > 復習資料 > 正文

2015年國家計算機二級C++考試復習資料(6)

來源:考試吧 2014-12-26 14:07:34 考試吧:中國教育培訓第一門戶 模擬考場
考試吧整理了“2015年國家計算機二級C++考試復習資料”,提供給各位考生備考,更多考試資料請持續關注考試吧計算機等級考試頻道!

  點擊查看:2015年國家計算機二級C 考試復習資料匯總

  二級C++輔導筆記:類對象數組和靜態成員

  一、類對象數組

  類的對象和C++其他數據類型一樣,也可以為其建立數組,數組的表示方法和結構一樣。

  #include iostream.h

  class Date

  {

  int mo,da,yr;

  public:

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

  void display() const { cout < };

  int main()

  {

  Date dates[2];

  Date today(12,31,2003);

  dates[0]=today;

  dates[0].display();

  dates[1].display();

  return 0;

  }

  1.類對象數組和默認構造函數

  在前面已經說過,不帶參數或者所有參數都有默認值的構造函數叫做默認構造函數。如果類中沒有構造函數,編譯器會自動提供一個什么都不做的公共默認構造函數 。如果類當中至少有一個構造函數,編譯器就不會提供默認構造函數。

  如果類當中不含默認構造函數,則無法實例化其對象數組。因為實例花類對象數組的格式不允許用初始化值來匹配某個構造函數的參數表。

  上面的程序中,main()函數聲明了一個長度為2的Date對象數組,還有一個包含初始化值的單個Date對象。接著把這個初始化的Date對象賦值給數組中第一個對象,然后顯示兩個數組元素中包含的日期。從輸出中可以看到,第一個日期是有效日期,而第二個顯示的都是0。

  當聲明了某個類的對象數組時,編譯器會為每個元素都調用默認構造函數。

  下面的程序去掉了構造函數的默認參數值,并且增加了一個默認構造函數。

  #include

  class Date

  {

  int mo, da, yr;

  public:

  Date();

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

  void display() const { cout < };

  Date::Date()

  {

  cout < mo=0; da=0; yr=0;

  }

  int main()

  {

  Date dates[2];

  Date today(12,31,2003);

  dates[0]=today;

  dates[0].display();

  dates[1].display();

  return 0;

  }

  運行程序,輸出為:

  Date constructor running

  Date constructor running

  12/31/2003

  0/0/0

  從輸出中可以看出,Date()這個默認構造函數被調用了兩次。

  2.類對象數組和析構函數

  當類對象離開作用域時,編譯器會為每個對象數組元素調用析構函數。

  #include iostream.h

  class Date

  {

  int mo,da,yr;

  public:

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

  ~Date() {cout < void display() const {cout< };

  int main()

  {

  Date dates[2];

  Date today(12,31,2003);

  dates[0]=today;

  dates[0].display();

  dates[1].display();

  return 0;

  }

  運行程序,輸出為:

  12/31/2003

  0/0/0

  Date destructor running

  Date destructor running

  Date destructor running

  表明析構函數被調用了三次,也就是dates[0],dates[1],today這三個對象離開作用域時調用的。

  二、靜態成員

  可以把類的成員聲明為靜態的。靜態成員只能存在唯一的實例。所有的成員函數都可以訪問這個靜態成員。即使沒有聲明類的任何實例,靜態成員也已經是存在的。不過類當中聲明靜態成員時并不能自動定義這個變量,必須在類定義之外來定義該成員。

  1.靜態數據成員

  靜態數據成員相當于一個全局變量,類的所有實例都可以使用它。成員函數能訪問并且修改這個值。如果這個靜態成員是公有的,那么類的作用域之內的所有代碼(不論是在類的內部還是外部)都可以訪問這個成員。下面的程序通過靜態數據成員來記錄鏈表首項和末項的地址。

  #include iostream.h

  #include string.h

  class ListEntry

  {

  public:

  static ListEntry* firstentry;

  private:

  static ListEntry* lastentry;

  char* listvalue;

  ListEntry* nextentry;

  public:

  ListEntry(char*);

  ~ListEntry() { delete [] listvalue;}

  ListEntry* NextEntry() const { return nextentry; };

  void display() const { cout < };

  ListEntry* ListEntry::firstentry;

  ListEntry* ListEntry::lastentry;

  ListEntry::ListEntry(char* s)

  {

  if(firstentry==0) firstentry=this;

  if(lastentry!=0) lastentry- >nextentry=this;

  lastentry=this;

  listvalue=new char[strlen(s)+1];

  strcpy(listvalue,s);

  nextentry=0;

  }

  int main()

  {

  while (1)

  {

  cout <<\nEnter a name ('end' when done): ;

  char name[25];

  cin >>name;

  if(strncmp(name,end,3)==0) break;

  new ListEntry(name);

  }

  ListEntry* next = ListEntry::firstentry;

  while (next != 0)

  {

  next- >display();

  ListEntry* hold = next;

  next=next- >NextEntry();

  delete hold;

  }

  return 0;

  }

  程序首先顯示提示信息,輸入一串姓名,以end作為結束標志。然后按照輸入順序來顯示姓名。構造函數將表項加入鏈表,用new運算符來聲明一個表項,但并沒有把new運算符返回的地址賦值給某個指針,這是因為構造函數會把該表項的地址賦值給前一個表項的nextentry指針。

  這個程序和前面將的逆序輸出的程序都不是最佳方法,最好的方法是使用類模板,這在后面再介紹。

  main()函數取得ListEntry::firstentry的值,開始遍歷鏈表,因此必需把ListEntry::firstentry設置成公有數據成員,這不符合面向對象程序的約定,因為這里數據成員是公有的。

  2.靜態成員函數

  成員函數也可以是靜態的。如果一個靜態成員函數不需要訪問類的任何實例的成員,可以使用類名或者對象名來調用它。靜態成員通常用在只需要訪問靜態數據成員的情況下。

  靜態成員函數沒有this指針,因為它不能訪問非靜態成員,所以它們不能把this指針指向任何東西。

  下面的程序中,ListEntry類中加入了一個靜態成員函數FirstEntry(),它從數據成員firstentry獲得鏈表第一項的地址,在這兒,firstentry已經聲明為私有數據成員了。

  #include iostream.h

  #include string.h

  class ListEntry

  {

  static ListEntry* firstentry;

  static ListEntry* lastentry;

  char* listvalue;

  ListEntry* nextentry;

  public:

  ListEntry(char*);

  ~ListEntry() { delete [] listvalue;}

  static ListEntry* FirstEntry() { return firstentry; }

  ListEntry* NextEntry() const { return nextentry; };

  void display() const { cout < };

  ListEntry* ListEntry::firstentry;

  ListEntry* ListEntry::lastentry;

  ListEntry::ListEntry(char* s)

  {

  if(firstentry==0) firstentry=this;

  if(lastentry!=0) lastentry- >nextentry=this;

  lastentry=this;

  listvalue=new char[strlen(s)+1];

  strcpy(listvalue, s);

  nextentry = 0;

  }

  int main()

  {

  while (1)

  {

  cout <<\nEnter a name ('end' when done):;

  char name[25];

  cin >> name;

  if(strncmp(name,end,3)==0) break;

  new ListEntry(name);

  }

  ListEntry* next = ListEntry::FirstEntry();

  while (next != 0)

  {

  next- >display();

  ListEntry* hold = next;

  next = next- >NextEntry();

  delete hold;

  }

  return 0;

  }

  函數ListEntry::FirstEntry()是靜態的,返回靜態數據成員firstentry的值。

  3.公有靜態成員

  如果一個靜態成員象上面程序一樣是公有的,那么在整個程序中都可以訪問它。可以在任何地方調用公有景泰成員函數,而且不需要有類的實例存在。但公有靜態成員函數不完全是全局的,它不僅僅存在于定義類的作用域內。在這個作用域里面,只要在函數名前加上類名和域解析運算符::就可以調用該函數。

  相關推薦:

  各地2015年計算機等級考試報名時間匯總

  各地2015年上半年計算機等級考試費用匯總

  2015年計算機二級C++模擬練習題及答案匯總

文章責編:luoyuting  
看了本文的網友還看了
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網 All Rights Reserved 
中國科學院研究生院權威支持(北京) 電 話:010-62168566 傳 真:010-62192699
主站蜘蛛池模板: 91精品视频免费在线观看 | 免费黄色三级 | 二级特黄绝大片免费视频大片 | 色综合色狠狠天天久久婷婷基地 | 4399一级成人毛片 | 日本一区二区高清免费不卡 | 亚洲国产精久久久久久久 | free性欧美另类巨大 | 欧美国产亚洲精品a第一页 欧美国产在线观看 | 国语对白自拍 | 国产成人精品综合网站 | 久久综合九色综合97婷婷女人 | 欧美日韩在线亚洲国产人 | 宅男深夜免费必看 | 曰批免费视频播放在线看片一 | 国产第一浮力影院新路线 | 日韩一区二区三区在线 | 在线黄色网页 | 嫩草在线视频www免费观看 | 欧美一区二区三区不卡免费 | 在线视频欧美亚洲 | 天天曰夜夜曰 | 黄色一级a毛片 | 黄色片视频在线 | 丁香激情综合网 | 毛片免| 乱肉合集乱篇小说 | 日本久久一区二区 | 97青草香蕉依人在线播放 | 波多野结衣与老人公gvg在线 | 涩在线| 成年人黄色在线观看 | 天天操天天艹 | 蝌蚪网在线观看 | 国产日韩欧美在线观看不卡 | 最近中文字幕高清视频2019 | 午夜精品久久久久 | 99re视频在线播放 | 亚洲五月激情综合图片区 | 久久综合偷偷噜噜噜色 | 老司机免费福利午夜入口ae58 |