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

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 閱讀(1049) 評論(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>
            亚洲人成啪啪网站| 久久只精品国产| 欧美一级一区| 亚洲国产一区二区在线| 国产女主播一区二区| 欧美国产综合视频| 久久九九精品| 欧美在线999| 亚洲综合国产精品| 欧美91大片| 久久综合色一综合色88| 欧美在线日韩精品| 欧美一区二区三区啪啪| 亚洲女ⅴideoshd黑人| 亚洲天堂男人| 亚洲欧美一区二区视频| 亚欧美中日韩视频| 久久精品一二三区| 欧美亚洲一区| 久久av在线| 久久综合久久久久88| 免费在线欧美黄色| 亚洲一区免费观看| 亚洲欧美激情视频| 亚洲免费视频一区二区| 欧美亚洲免费高清在线观看| 在线高清一区| 日韩视频一区| 欧美亚洲在线观看| 久久影视三级福利片| 欧美一级淫片播放口| 久久久www免费人成黑人精品| 久久久久国产精品一区三寸 | 亚洲视频一区二区免费在线观看| 99天天综合性| 亚洲欧美日本在线| 久久深夜福利免费观看| 欧美综合77777色婷婷| 久久久久一区二区三区四区| 欧美大学生性色视频| 欧美日韩在线精品| 国产精品入口| 亚洲国产日本| 欧美一区免费| 亚洲国产成人不卡| 亚洲夜间福利| 免费精品99久久国产综合精品| 欧美日韩免费高清一区色橹橹| 国产精品一区二区视频| 国产婷婷色一区二区三区在线| 亚洲电影免费观看高清完整版| 一区二区三区四区国产精品| 久久婷婷久久| 亚洲电影在线观看| 亚洲砖区区免费| 欧美激情91| 亚洲第一久久影院| 性久久久久久久久久久久| 老司机凹凸av亚洲导航| 亚洲午夜免费视频| 免费在线看一区| 国产专区欧美精品| 亚洲欧美999| 亚洲人成人一区二区三区| 亚洲激情一区二区三区| 欧美在线二区| 国产精品一区二区久久国产| 欧美日韩不卡视频| 亚洲成在线观看| 久久久欧美精品| 欧美一级理论性理论a| 国内精品久久久久伊人av| 久久久久欧美| 欧美电影免费网站| 亚洲综合色激情五月| 亚洲尤物在线视频观看| 国产亚洲欧美一区二区三区| 久久琪琪电影院| 欧美 日韩 国产精品免费观看| 亚洲人成亚洲人成在线观看| 亚洲激情影院| 国产美女精品人人做人人爽| 久久久av毛片精品| 欧美 日韩 国产一区二区在线视频| 亚洲精品一区在线观看香蕉| 99在线热播精品免费99热| 国产免费成人| 欧美成人四级电影| 欧美亚一区二区| 91久久在线观看| 久久这里只精品最新地址| 亚洲精品之草原avav久久| 99国产精品视频免费观看| 国产精品视频yy9099| 免费h精品视频在线播放| 欧美高清视频www夜色资源网| 一区二区三区高清在线观看| 午夜影院日韩| aa级大片欧美| 久久精品国产一区二区三| 日韩西西人体444www| 香蕉免费一区二区三区在线观看| 亚洲激情啪啪| 欧美一站二站| 亚洲一区二区免费在线| 久久精品一区| 午夜精品一区二区三区四区| 久久中文字幕一区| 亚洲欧美日韩国产成人精品影院| 久久欧美肥婆一二区| 亚洲男人av电影| 欧美激情视频给我| 米奇777在线欧美播放| 国产精品久久九九| 91久久国产综合久久| 激情久久一区| 亚洲欧美日韩一区二区三区在线| 99re6这里只有精品| 久久久久成人精品| 久久国内精品视频| 欧美三级不卡| 亚洲精品免费网站| 亚洲国产精品传媒在线观看| 中国亚洲黄色| 99在线观看免费视频精品观看| 久久久在线视频| 久久久久国产免费免费| 国产欧美一区二区白浆黑人| 夜夜嗨一区二区| 这里只有精品电影| 欧美女主播在线| 亚洲理论在线观看| 一本到12不卡视频在线dvd| 欧美成人官网二区| 欧美成人网在线| 亚洲电影成人| 久久亚洲私人国产精品va媚药 | 国产欧美精品日韩区二区麻豆天美 | 午夜免费在线观看精品视频| 亚洲黑丝在线| 嫩草成人www欧美| 欧美黄色aa电影| 亚洲国产婷婷香蕉久久久久久| 亚洲视频视频在线| 亚洲一区二区三区涩| 欧美日韩中文字幕| 99精品欧美一区| 性欧美1819性猛交| 国产一区二区三区直播精品电影 | 国产在线乱码一区二区三区| 亚洲专区在线| 久久亚洲综合| 亚洲国产你懂的| 欧美久久久久中文字幕| 亚洲精品一二三区| 亚洲一区二区精品在线观看| 欧美四级电影网站| 亚洲欧美日韩中文播放| 久久亚洲精品一区二区| 亚洲激情影院| 欧美视频在线观看一区| 亚洲一区免费网站| 麻豆精品网站| 一区二区国产日产| 国产色产综合产在线视频| 久久亚洲影院| 亚洲免费电影在线| 欧美一区二区播放| 在线观看不卡| 欧美色图五月天| 久久精品免费| 99精品国产在热久久下载| 久久国产免费| 9l视频自拍蝌蚪9l视频成人| 国产伦精品一区二区三区高清| 久久免费国产精品| 一本色道久久综合亚洲精品不| 久久九九99| 一区二区三区视频在线观看| 国产日韩亚洲| 欧美日韩精品一本二本三本| 午夜在线观看欧美| 最新中文字幕亚洲| 久久久亚洲综合| 亚洲女女女同性video| 亚洲风情亚aⅴ在线发布| 欧美三区在线观看| 久久综合中文字幕| 午夜精品视频在线| 亚洲精品小视频| 蜜臀久久99精品久久久画质超高清 | 美女主播一区| 亚洲影院免费| 亚洲精品久久视频| 欧美高清视频在线| 欧美在线首页| 亚洲欧美日韩电影| 一本一本a久久| 亚洲三级国产| 亚洲经典在线看|