又黄又www的网站_青青草.com_在线亚洲美日韩_九九九国产视频_√天堂8资源中文在线_一区二区三区免费网站_久久久久国产一区二区三区_人妻激情偷乱视频一区二区三区_一本到在线视频

計算機二級C基礎(chǔ):虛擬構(gòu)造函數(shù)的用處

發(fā)布時間:2011-08-29 共2頁

  從字面來看,談論“虛擬構(gòu)造函數(shù)”沒有意義。當有一個指針或引用,但是不知道其指向?qū)ο蟮恼鎸嶎愋褪鞘裁磿r,可以調(diào)用虛擬函數(shù)來完成特定類型(type-specific)對象的行為。僅當還沒擁有一個對象但是又確切地知道想要的對象的類型時,才會調(diào)用構(gòu)造函數(shù)。那么虛擬構(gòu)造函數(shù)又從何談起呢?
  很簡單。盡管虛擬構(gòu)造函數(shù)看起來好像沒有意義,其實它們有非常的用處.例如,假設編寫一個程序,用來進行新聞報道的工作,每一條新聞報道都由文字或圖片組成。可以這樣管理它們:
  class NLComponent {//用于 newsletter components
  public:// 的抽象基類
  ... //包含至少一個純虛函數(shù)
  };
  class TextBlock: public NLComponent {
  public:
  ... // 不包含純虛函數(shù)
  };
  class Graphic: public NLComponent {
  public:
  ... // 不包含純虛函數(shù)
  };
  class NewsLetter { // 一個 newsletter 對象
  public:// 由NLComponent 對象
  ... // 的鏈表組成
  private:
  list<NLComponent*> components;
  };
  在NewsLetter中使用的list類是一個標準模板類(STL)。list類型對象的行為特性有些象雙向鏈表,盡管它沒有以這種方法來實現(xiàn)。對象NewLetter不運行時就會存儲在磁盤上。為了能夠通過位于磁盤的替代物來建立Newsletter對象,讓NewLetter的構(gòu)造函數(shù)帶有istream參數(shù)是一種很方便的方法。當構(gòu)造函數(shù)需要一些核心的數(shù)據(jù)結(jié)構(gòu)時,它就從流中讀取信息:
  class NewsLetter {
  public:
  NewsLetter(istream& str);
  ...
  };
  此構(gòu)造函數(shù)的偽代碼是這樣的:
  NewsLetter::NewsLetter(istream& str)
  {
  while (str) {
  從str讀取下一個component對象;
  把對象加入到newsletter的 components對象的鏈表中去;
  }
  }
  或者,把這種技巧用于另一個獨立出來的函數(shù)叫做readComponent,如下所示:
  class NewsLetter {
  public:
  ...
  private:
  // 為建立下一個NLComponent對象從str讀取數(shù)據(jù),
  // 建立component 并返回一個指針。
  static NLComponent * readComponent(istream& str);
  ...
  };
  NewsLetter::NewsLetter(istream& str)
  {
  while (str) {
  // 把readComponent返回的指針添加到components鏈表的最后,
  // \"push_back\" 一個鏈表的成員函數(shù),用來在鏈表最后進行插入操作。
  components.push_back(readComponent(str));
  }
  }
  考慮一下readComponent所做的工作。它根據(jù)所讀取的數(shù)據(jù)建立了一個新對象,或是TextBlock或是Graphic。因為它能建立新對象,它的行為與構(gòu)造函數(shù)相似,而且因為它能建立不同類型的對象,我們稱它為虛擬構(gòu)造函數(shù)。虛擬構(gòu)造函數(shù)是指能夠根據(jù)輸入給它的數(shù)據(jù)的不同而建立不同類型的對象。虛擬構(gòu)造函數(shù)在很多場合下都有用處,從磁盤(或者通過網(wǎng)絡連接,或者從磁帶機上)讀取對象信息只是其中的一個應用。
  還有一種特殊種類的虛擬構(gòu)造函數(shù)――虛擬拷貝構(gòu)造函數(shù)――也有著廣泛的用途。虛擬拷貝構(gòu)造函數(shù)能返回一個指針,指向調(diào)用該函數(shù)的對象的新拷貝。因為這種行為特性,虛擬拷貝構(gòu)造函數(shù)的名字一般都是copySelf,cloneSelf或者是象下面這樣就叫做clone。很少會有函數(shù)能以這么直接的方式實現(xiàn)它:
  class NLComponent {
  public:
  // declaration of virtual copy constructor
  virtual NLComponent * clone() const = 0;
  ...
  };
  class TextBlock: public NLComponent {
  public:
  virtual TextBlock * clone() const// virtual copy
  { return new TextBlock(*this); } // constructor
  ...
  };
  class Graphic: public NLComponent {
  public:
  virtual Graphic * clone() const// virtual copy
  { return new Graphic(*this); } // constructor
  ...
  };

百分百考試網(wǎng) 考試寶典

立即免費試用
免费成人在线观看视频| 国产免费不卡av| 日韩欧美黄色片| 国内三级在线观看| 国产精品嫩模av在线| 91麻豆产精品久久久久久| 日韩av中文字幕在线免费观看| 国产欧美在线看| 91精品视频国产| 中文字幕免费在线看| 男女激情片在线观看| 国产伦精品一区二区三区免费优势 | 国产精品自拍小视频| 911福利视频| 日本黄色免费视频| v片在线观看| 亚洲欧美成人| 欧美一区二区三区啪啪| 精品乱子伦一区二区三区| 免费视频91蜜桃| 一二三四视频免费观看在线看| 成人在线观看免费播放| 国产福利一区二区| 亚洲人a成www在线影院| 黄黄视频在线观看| 看黄色一级大片| 黄色电影免费在线看| 在线日韩电影| 3d成人动漫网站| 日韩高清国产精品| 丰满少妇乱子伦精品看片| 成人av网页| 深爱激情久久| 欧美视频中文字幕在线| 91亚洲精品一区| 亚洲国产精品一区二区久久hs| 天天靠夜夜靠| 色综合五月天| 在线精品观看国产| 精品国产免费人成电影在线观...| 国产老头老太做爰视频| 特黄aaaaaaaaa毛片免费视频| 婷婷亚洲图片| 91精品国产色综合久久| av动漫免费观看| 一级黄色录像大片| 波多野结衣在线播放| 国产成人在线视频网站| 欧美老女人性生活| 婷婷六月天在线| 九九热精品在线视频| 国产精品45p| 黑人精品xxx一区一二区| 国产尤物99| 男人天堂2024| 伊人福利在线| k8久久久一区二区三区| 日本国产精品视频| 中文字幕第69页| 超碰在线图片| 丝袜a∨在线一区二区三区不卡| 亚洲欧美国产制服动漫| 成年网站在线播放| 色的视频在线观看免费播放| 视频福利一区| 欧美高清性hdvideosex| 人人妻人人澡人人爽欧美一区双 | 很黄很色的网站| 欧美在线高清| 亚洲男人天堂视频| 黄色aaaaaa| 人人澡人人爽| 亚洲欧美高清| 九九久久久久久久久激情| 一卡二卡三卡四卡| 最新中文字幕在线观看| 裸体在线国模精品偷拍| 性欧美亚洲xxxx乳在线观看| 后入内射无码人妻一区| 国产毛片在线| 成人不卡免费av| 国产欧美韩国高清| 亚洲精品男人的天堂| 欧美调教sm| 亚洲一区二区三区中文字幕| 久久综合九色欧美狠狠| 亚洲国产999| 波多野结衣一区二区三区免费视频| 欧洲精品一区二区三区在线观看| 欧美乱大交xxxxx潮喷l头像| www.91在线观看| 欧美久久久久| 久久91亚洲人成电影网站| 婷婷激情四射网| a级大胆欧美人体大胆666| 亚洲人妖av一区二区| 三级三级久久三级久久18| 二区三区不卡不卡视频| 欧美r级电影| 少妇精69xxtheporn| 毛片久久久久久| 黄页网站在线观看免费| 亚洲国产乱码最新视频| 国内精品视频一区二区三区| 8888在线观看免费www| 麻豆91精品91久久久的内涵| 亚洲伊人一本大道中文字幕| 亚洲va久久久噜噜噜无码久久| 日韩欧美在线精品| 一本色道久久综合狠狠躁篇怎么玩| 一区二区黄色片| 日本一本在线免费福利| 激情懂色av一区av二区av| 免费国产成人av| 中文字幕在线播放第一页| 久久久国际精品| 乱子伦一区二区| 四色永久免费网站| 成人不卡免费av| 一区二区三视频| 天天摸天天做天天爽水多| 国产成人av电影在线| 欧美国产二区| 人人玩人人添人人澡免费| 韩国成人精品a∨在线观看| 国产伦精品一区二区三区四区免费| 久草av在线播放| 国产精品亚洲综合久久| 成人久久久久久久| 狠狠色综合久久婷婷| 欧美中文字幕| 国产精品久久国产三级国电话系列| 在线播放性xxx欧美| 日韩电影一二三区| 国产精品美女黄网| 天堂网.www在线资源| 国产成人免费xxxxxxxx| 杨幂一区欧美专区| jizzjizzji欧美| 欧美激情一区二区三区不卡| 鲁一鲁一鲁一鲁一澡| 久久精品a一级国产免视看成人| 亚洲一区二区三区在线| 美女流白浆视频| 国产高清中文字幕在线| 精品成人在线观看| 国产精品第二十页| 免费视频亚洲| 国产成人av网| 久草在线最新视频| 久久99精品国产| 黄色高清视频网站| 污污网址在线观看| 午夜精品久久久久久久久久久| 亚洲国产日韩在线一区| 蜜桃视频动漫在线播放| 日韩精品福利网站| 亚洲无码精品一区二区三区| 综合国产精品| 国产精品免费一区二区三区| 美女大黄三级视频在线观看| 国产人妖乱国产精品人妖| 免费男同深夜夜行网站| 日本aa在线| 亚洲精品理论电影| 这里只有精品免费视频| 亚洲国产电影| 欧美二区三区在线| 黄网站app在线观看下载视频大全官网 | 国产成人激情小视频| 国产最新自拍视频| 国产三级一区二区| 无码人妻一区二区三区在线视频| 成人做爰视频www网站小优视频| 中文字幕在线观看亚洲| 后入内射欧美99二区视频| 免费的国产精品| 日本一本中文字幕| 黄色网页网址在线免费| 亚洲精品成人久久电影| 91精品国产色综合久久不8| 久久久久国产精品午夜一区| 国产奶头好大揉着好爽视频| av中文字幕在线| 亚洲国产精品人久久电影| 影音先锋国产在线| 久久99久久99| 一区二区在线播放视频| 日韩一级二级| 97超级碰碰碰| 夜夜操夜夜操| 亚洲国产日韩a在线播放性色| 国产一级淫片久久久片a级| 日韩欧美精品| 五月天国产一区| 黄色小网站在线观看| 日韩在线免费观看视频| 思思99精品视频在线观看| 国产精品亲子乱子伦xxxx裸| 免费看91的网站|