青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++分析研究  
C++
日歷
<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456
統計
  • 隨筆 - 92
  • 文章 - 4
  • 評論 - 4
  • 引用 - 0

導航

常用鏈接

留言簿

隨筆檔案

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

  一、智能指針
  在C++語言編程時,當類中有指針成員時,一般有兩種方式來管理指針成員:一是采用值型的方式管理,每個類對象都保留一份指針指向的對象的拷貝;另一種更優雅的方式是使用智能指針,從而實現指針指向的對象的共享。
  智能指針(smartpointer)的一種通用實現技術是使用引用計數(referencecount)。智能指針類將一個計數器與類指向的對象相關聯,引用計數跟蹤該類有多少個對象共享同一指針。
  每次創建類的新對象時,初始化指針并將引用計數置為1;當對象作為另一對象的副本而創建時,拷貝構造函數拷貝指針并增加與之相應的引用計數;對一個對象進行賦值時,賦值操作符減少左操作數所指對象的引用計數(如果引用計數為減至0,則刪除對象),并增加右操作數所指對象的引用計數;調用析構函數時,析構函數減少引用計數(如果引用計數減至0,則刪除基礎對象)。
  智能指針詳解:
  包括:std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost::intrusive_ptr
  二、智能指針的一般實現  www.jamo123.com
  智能指針通常使用類模板來實現。模擬類指針的各種行為。但是,其最重要的作用是對類指針成員的管理,防止懸垂指針的出現。
  template<classT>
  classSmartPointer{
  public:
  SmartPointer(T*t):pt(t){}
  T&operator*(){return*pt;}
  T*operator->(){returnpt;}
  private:
  T*pt;
  };
  三、引用計數的實現
  為了實現引用計數,我們定義一個_counter類來記錄引用次數,把_counter類的所有成員設定為private,因為其他的類型并不需要訪問_counter,只有SmartPointer對其進行操作就行了,SmartPointer將設為其友元類。
  class_counter{
  template<classT>friendclassSmartPointer;
  _counter(intu):use(u){}
  ~_counter(){}
  intuse;
  };
  在SmartPointer類中,保留_counter的指針。
  template<classT>
  classSmartPointer{
  public:
  SmartPointer(T*t):pc(new_counter(1)){
  cout《"SmartPointer::SmartPointer()invodeduseis:"《pc->use《endl;
  this->pt=t;
  }
  SmartPointer(SmartPointer<T>&rhs){
  this->pc=rhs.pc;
  this->pt=rhs.pt;
  this->pc->use++;
  cout《"SmartPointercopyinvokeduseis:"《pc->use《endl;
  }
  ~SmartPointer(){
  pc->use--;
  cout《"SmartPointer::~SmartPointer()invodeduseis:"《pc->use《endl;
  if(pc->use==0)
  {
  deletept;
  deletepc;
  }
  }
  SmartPointer<T>&operator=(SmartPointer<T>rhs){
  if(rhs==*this){
  return*this;
  }
  this->pt=rhs.pt;
  this->pc=rhs.pc;
  this->pc->use++;
  cout《"SmartPointer::operator=()invokeduseis:"《pc->use《endl;
  return*this;
  }
  private:
  T*pt;
  _counter*pc;
  };
  例如:我們有一個HasPtr類,其類成員中有一個為指針*p.
  classHasPtr{
  public:
  HasPtr(intval):value(val),p(newint(3)){
  cout《"HasPtr::HasPtr()invoked"《endl;
  }
  ~HasPtr(){deletep;cout《"HasPtr::~HasPtr()invoded"《endl;}
  private:
  int*p;
  intvalue;
  };
  如果如下調用:
  HasPtr*php=newHasPtr(3);
  SmartPointer<HasPtr>psp(php);
  SmartPointer<HasPtr>npsp(psp);
  我們現在有兩個智能指針對象,指向同一個HasPtr對象,
實現 www.lefeng123.com
  _counter的use成員(引用計數)為2.
  四、測試
  intmain(void)
  {
  HasPtr*php=newHasPtr(3);
  SmartPointer<HasPtr>psp(php);
  SmartPointer<HasPtr>npsp(psp);
  SmartPointer<HasPtr>nnpsp=npsp;
  return0;
  }

posted on 2014-03-18 17:13 HAOSOLA 閱讀(271) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
PK10開獎 PK10開獎
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            另类综合日韩欧美亚洲| 久久亚洲综合色| 欧美日韩高清在线| 性欧美办公室18xxxxhd| 欧美 日韩 国产在线| 亚洲一区观看| 亚洲在线国产日韩欧美| 亚洲三级免费观看| 日韩手机在线导航| 国际精品欧美精品 | 欧美三级小说| 欧美日韩视频第一区| 欧美激情久久久| 免费中文日韩| 欧美日本韩国一区| 欧美激情免费在线| 国产精品久久久久久久午夜 | 99在线热播精品免费| 午夜一区不卡| 亚洲在线成人| 欧美国产日韩免费| 欧美专区18| 美女尤物久久精品| 国产精品美女久久福利网站| 在线观看国产日韩| 亚洲精品综合久久中文字幕| 麻豆乱码国产一区二区三区| 欧美在线一区二区三区| 国产情侣久久| 久久精品国产免费看久久精品| 9久草视频在线视频精品| 亚洲女女女同性video| 噜噜噜躁狠狠躁狠狠精品视频| 久热精品视频在线| 国产乱码精品一区二区三| 国产一区二区中文| 亚洲欧美不卡| 亚洲国产精品热久久| 亚洲第一毛片| 欧美在线日韩| 国产精品伊人日日| 亚洲乱码日产精品bd| 久久视频一区二区| 性做久久久久久久免费看| 欧美日韩国产区| av成人老司机| 母乳一区在线观看| 欧美亚洲一区二区三区| 国产日韩成人精品| 性欧美在线看片a免费观看| 亚洲经典一区| 欧美涩涩视频| 亚洲永久免费av| 亚洲综合色视频| 欧美刺激性大交免费视频 | 久久婷婷国产麻豆91天堂| 国产日韩欧美成人| 久久资源在线| 欧美精品精品一区| 在线亚洲一区| 一区二区三区国产盗摄| 国产美女精品一区二区三区| 性欧美办公室18xxxxhd| 欧美一级午夜免费电影| 国产精品久久久久91| 欧美成年人视频网站| 国模叶桐国产精品一区| 亚洲视频你懂的| 亚洲淫性视频| 久久中文字幕一区| 亚洲欧美一区二区原创| 欧美韩国一区| 亚洲第一毛片| 亚洲国产欧美日韩另类综合| 欧美一区二区三区喷汁尤物| 一区二区三区精品久久久| 猛男gaygay欧美视频| 久久精品综合| 伊人伊人伊人久久| 久久亚洲精品中文字幕冲田杏梨| 久久久久网站| 亚洲高清久久久| 蜜臀av一级做a爰片久久 | 欧美色欧美亚洲另类二区| 亚洲国产高清一区| 一本色道久久综合亚洲精品高清| 久久综合成人精品亚洲另类欧美| 欧美日本精品一区二区三区| 欧美成人免费网站| 91久久久精品| 国产精品理论片| 久久久久国产精品一区二区| 欧美激情第8页| 亚洲欧美美女| 亚洲高清色综合| 国产精品久久午夜夜伦鲁鲁| 欧美一区二区高清在线观看| 国语自产偷拍精品视频偷 | 久久精品99国产精品日本| 又紧又大又爽精品一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲高清视频在线观看| 亚洲无玛一区| 欧美高清视频在线播放| 欧美在线一二三区| 一本一本a久久| 亚洲日韩视频| 亚洲欧洲一区二区三区久久| 国产亚洲激情| 国产亚洲精品久久久| 国产欧美精品久久| 国产精品免费一区二区三区在线观看| 欧美a级大片| 久久久国产91| 99视频国产精品免费观看| 欧美激情一区三区| 亚洲第一天堂无码专区| 欧美国产欧美亚州国产日韩mv天天看完整| 久久视频这里只有精品| 亚洲欧美综合精品久久成人| 尤物yw午夜国产精品视频| 欧美区二区三区| 久久久久久亚洲精品中文字幕| 一区二区三区 在线观看视| 久久精品久久99精品久久| 久久久综合免费视频| 午夜精品久久久久久| 欧美日本在线播放| 亚洲高清免费| 亚洲第一中文字幕在线观看| 欧美一区二区在线看| 欧美在线首页| 国产欧美日韩不卡免费| 这里只有视频精品| 亚洲欧美清纯在线制服| 国产精品久久久久久久久久久久久| 亚洲高清123| 亚洲精品乱码久久久久久日本蜜臀 | 欧美女同视频| 亚洲人体一区| 亚洲精品一区二区三区在线观看 | 国产日韩精品在线| 亚洲欧美精品| 久久成人一区| 黄色精品网站| 老妇喷水一区二区三区| 欧美国产精品劲爆| 日韩视频在线观看| 国产精品久久77777| 亚洲一级在线| 久久嫩草精品久久久精品一| 亚洲第一主播视频| 欧美日韩xxxxx| 亚洲伊人伊色伊影伊综合网| 久久av红桃一区二区小说| 国产伦精品一区二区三区在线观看| 亚洲在线观看免费视频| 久久久久九九九九| 亚洲精品乱码久久久久| 欧美三区美女| 亚洲欧美日本日韩| 欧美黄色免费| 亚洲午夜久久久久久尤物| 在线观看不卡av| 欧美影视一区| 欧美成熟视频| 亚洲欧美在线看| 黑人极品videos精品欧美裸| 欧美福利在线观看| 亚洲欧美日韩人成在线播放| 免费视频一区| 亚洲欧美一区二区精品久久久| 黄色工厂这里只有精品| 欧美日韩国产精品一卡| 亚洲一区二区三区四区中文| 久久夜色精品| 这里是久久伊人| 黄色日韩在线| 欧美午夜在线观看| 老司机免费视频久久| 一区二区精品在线| 美女日韩欧美| 欧美一区1区三区3区公司| 91久久精品视频| 国产精品免费看片| 欧美精品自拍偷拍动漫精品| 久久av在线| 亚洲欧美中文另类| 亚洲美女av电影| 亚洲成色www8888| 久久爱www久久做| 亚洲婷婷综合色高清在线 | 欧美日韩国产在线播放| 久久久国产精品一区二区中文| 中文一区二区| 日韩亚洲国产精品| 欧美福利视频在线| 久久免费视频网| 久久久伊人欧美| 欧美在线视频全部完|