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

Benjamin

靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
隨筆 - 398, 文章 - 0, 評論 - 196, 引用 - 0
數據加載中……

C++之Destructors(析構函數)

Destructors實質是釋放資源;
類的析構執行順序是先構造(Constructed)的(成員),最后被Destructors,數組成員同樣如此,例如:數組a[0], a[1], ..., a[8], a[9]: 析構執行順序是a[9], a[8], ..., a[1], a[0]:不能有參數,不能有返回值,不能重載;只能在(對象關閉)自動調用,不能顯示調用析構函數(除非placement new),不可以調用兩次。
值得注意的是不能顯式調用析構函數,即使局部變量也不行。此時我們需要這樣處理:
void someCode()
 {
   {
     File f;
    ...........
   }
 // f 的析構函數在此處會被自動調用!
 }
如果上述的方案還是不可行,我們可以考慮增加一個和析構函數等效的成員方法,例如:我們常見File類,就可增加一個Close()成員方法,但是要記住和析構函數一樣,不能聯系調用兩次,我們可以將一個fileHandle_數據成員設置為 -1,并且在開頭檢查fileHandle_是否已經等于-1;
class File {
 public:
   void close();
   ~File();
   ...
 private:
   int fileHandle_;   
// fileHandle_ >= 0 if/only-if it's open
 };
 
 File::~File()
 {
   close();
 }
 
 void File::close()
 {
   if (fileHandle_ >= 0) {
     
...insert code to call the OS to close the file...
     fileHandle_ = -1;
   }
 }
如果一個對象是new的,那么在delete中也不能顯示調用析構函數,因為delete做了兩件事,調用析構銷毀對象和釋放空間。這里的new可不是operator new,后者只是分配空間,并沒調用構造函數。
placement最明顯的作用就是把對象放到特定的內存位置。

#include <new>        // Must #include this to use "placement new"
 #include "Fred.h"     
// Declaration of class Fred
 
 void someCode()
 {
   char memory[sizeof(Fred)];     
// Line #1
   void* place = memory;          
// Line #2
 
   Fred* f = new(place) Fred();   
// Line #3 (see "DANGER" below)
   
// The pointers f and place will be equal
 
   
...
 }
Line #3中的構造函數中的this指針將等于place,f的返回值也是place,注意:placenew指向的指針要有足夠的空間,并且需要為所創建的對象進行邊界調整,編譯器和系統不會對此進行任何檢查,另外placenew的析構應該像如下這樣編寫:
void someCode()
 {
   char memory[sizeof(Fred)];
   void* p = memory;
   Fred* f = new(p) Fred();
   ...
   f->~Fred();   
// Explicitly call the destructor for the placed object
 }
在編寫析構函數時,也不能顯正調用成員的析構函數,類的析構函數會自動調用成員的析構,按照和它們在類中的聲明的順序相反的順序被析構。
在派生類的析構中,不能顯式調用基類的析構。派生類的析構會自動調用基類的析構函數。在多重繼承的情況下,直接基類以出現在繼承列表中的順序的反序被析構。

posted on 2010-11-26 00:18 Benjamin 閱讀(1039) 評論(1)  編輯 收藏 引用 所屬分類: C/C++

評論

# seo backlinks  回復  更多評論   

好貼。我必須說,這個職位處理了話題,能真正傳授新的思路。我真的很感激。希望你們繼續發布有用的職位。
2011-01-11 16:25 | dating website
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美精品一区二区精品网| 欧美在线影院在线视频| 欧美大色视频| 亚洲日本欧美在线| 亚洲精品一区在线观看| 欧美色视频在线| 欧美综合77777色婷婷| 香蕉久久夜色精品| 一区在线免费| 亚洲精品少妇30p| 国产美女一区| 欧美高清视频在线| 欧美特黄一区| 久久综合色综合88| 欧美日韩亚洲天堂| 久久爱www| 欧美另类女人| 久久久精品国产99久久精品芒果| 久久综合久久综合久久综合| 99热免费精品在线观看| 亚洲欧美国产日韩天堂区| 伊人久久综合| 亚洲一级黄色| 亚洲人成久久| 欧美一区二区三区在| 日韩视频在线免费观看| 午夜一级在线看亚洲| 亚洲黄色尤物视频| 午夜精品一区二区三区在线播放| 91久久精品国产91久久性色tv| 日韩视频不卡中文| 在线日韩中文字幕| 亚洲欧美综合另类中字| 夜夜嗨av一区二区三区| 久久国产99| 亚洲欧美日韩精品一区二区| 欧美国产第一页| 久久天堂成人| 国产精品一区二区久久精品| 91久久久久久久久| 黑人一区二区| 亚洲免费视频中文字幕| 一区二区国产日产| 美女黄色成人网| 久久久精品一区二区三区| 欧美色另类天堂2015| 欧美激情网站在线观看| 好吊色欧美一区二区三区四区| 亚洲午夜精品一区二区| 一区二区国产日产| 欧美精品999| 欧美激情第五页| 亚洲大胆在线| 久久久久久久久久久一区| 欧美影院一区| 亚洲午夜久久久久久久久电影网| 久久国产精品黑丝| 欧美一区二区三区四区夜夜大片| 欧美日韩国产123区| 亚洲第一黄色网| 亚洲风情在线资源站| 久久久之久亚州精品露出| 久久免费的精品国产v∧| 国产一区二区毛片| 欧美在线一级视频| 久热综合在线亚洲精品| 激情综合在线| 久久综合久久综合久久综合| 欧美成人午夜免费视在线看片| 精品成人久久| 蜜臀av在线播放一区二区三区| 蜜臀91精品一区二区三区| 一区二区亚洲欧洲国产日韩| 久久久噜噜噜久久狠狠50岁| 欧美成人资源网| 亚洲精品国产精品国产自| 欧美国产日韩xxxxx| 亚洲美女91| 性色av一区二区三区红粉影视| 国产女人aaa级久久久级| 欧美在线免费观看视频| 欧美va亚洲va国产综合| 日韩亚洲欧美一区| 国产精品区二区三区日本| 亚洲免费在线| 欧美99在线视频观看| 亚洲伦理在线观看| 国产精品久久久久久久久果冻传媒| 亚洲一区二区欧美| 麻豆成人综合网| 野花国产精品入口| 国产亚洲美州欧州综合国| 麻豆乱码国产一区二区三区| 亚洲毛片在线看| 久久久久久久久久看片| 亚洲人成高清| 国产欧美精品一区| 欧美成人激情在线| 亚洲女女女同性video| 欧美 日韩 国产精品免费观看| 99在线热播精品免费99热| 国产日韩亚洲欧美综合| 欧美成人在线网站| 欧美一级片一区| 亚洲精品孕妇| 麻豆91精品| 欧美与黑人午夜性猛交久久久| 91久久极品少妇xxxxⅹ软件| 国产欧美日韩亚洲| 欧美国产免费| 久久九九国产精品| 制服丝袜亚洲播放| 亚洲国产欧美另类丝袜| 久久久久国产精品午夜一区| 一区二区三区产品免费精品久久75 | 国产九九视频一区二区三区| 久久亚洲欧美国产精品乐播| 亚洲图片在线| 亚洲激情电影在线| 欧美+日本+国产+在线a∨观看| 午夜欧美大尺度福利影院在线看| 亚洲激情第一区| 一色屋精品亚洲香蕉网站| 国产精品亚洲激情| 欧美理论电影网| 欧美fxxxxxx另类| 亚洲人成人99网站| 国产亚洲精品综合一区91| 国产精品v一区二区三区| 欧美成人综合在线| 久久久久久九九九九| 欧美一级淫片播放口| 亚洲一区日韩| 一区二区三区欧美| 一区二区三区国产精华| 最近中文字幕日韩精品| 91久久综合亚洲鲁鲁五月天| 欧美激情麻豆| 亚洲国产精品激情在线观看| 欧美国产专区| 欧美成人免费在线观看| 欧美激情一区二区三区高清视频| 麻豆国产va免费精品高清在线| 久久免费视频一区| 毛片精品免费在线观看| 久久婷婷国产综合尤物精品| 久久精品一二三区| 久久天堂av综合合色| 久久亚洲精品中文字幕冲田杏梨| 久久精品国产成人| 久久综合色一综合色88| 欧美大片一区| 亚洲黄页视频免费观看| 亚洲精品中文字幕在线| 一区二区av在线| 亚洲自拍16p| 久久精品亚洲精品国产欧美kt∨| 久久久久久久久伊人| 久久综合色88| 欧美日韩国内自拍| 国产模特精品视频久久久久| 国内精品视频一区| 亚洲激情精品| 亚洲在线播放| 快射av在线播放一区| 亚洲第一福利社区| 亚洲社区在线观看| 久久狠狠婷婷| 欧美喷潮久久久xxxxx| 国产精品久久久久久久久搜平片| 国产美女搞久久| 亚洲电影有码| 亚洲在线观看视频网站| 久久精品国产一区二区电影| 欧美大胆a视频| 亚洲视频图片小说| 久久综合影音| 国产精品嫩草久久久久| 亚洲国产精品第一区二区三区 | 国产精品成人av性教育| 国产欧美亚洲精品| 日韩一级大片| 久久久久久久综合| 亚洲精品乱码久久久久| 久久成人亚洲| 国产精品国产精品| 亚洲经典在线看| 欧美在线亚洲一区| 亚洲精选久久| 久久一区二区三区国产精品| 国产精品美女视频网站| 亚洲国产一成人久久精品| 欧美一级大片在线观看| 亚洲精品色婷婷福利天堂| 久久综合国产精品台湾中文娱乐网| 国产精品视频久久一区| aa级大片欧美三级| 亚洲第一页自拍| 久久久久国产精品厨房| 国产精品久久久一区二区|