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

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>
            一区二区三区黄色| 日韩一级在线观看| 久久嫩草精品久久久久| 欧美视频中文在线看| 亚洲国产欧美一区| 久久综合久久综合久久综合| 亚洲欧美日韩国产成人| 国产精品区一区二区三区| 国产精品99久久久久久有的能看| 亚洲电影在线免费观看| 久久九九免费视频| 国产一区在线播放| 久久久精品国产一区二区三区| 亚洲一区bb| 国产精品乱码人人做人人爱| 亚洲综合丁香| 亚洲欧美日韩久久精品| 国产日韩精品在线播放| 久久精品国产欧美激情| 久久国产精品久久久久久电车| 国产日韩欧美自拍| 蜜臀av国产精品久久久久| 免费观看成人网| 亚洲精品免费在线观看| 亚洲美洲欧洲综合国产一区| 欧美日韩亚洲高清| 午夜视频一区二区| 欧美在线一级va免费观看| 韩国三级电影一区二区| 男女精品网站| 欧美三级精品| 久久久在线视频| 欧美极品aⅴ影院| 新片速递亚洲合集欧美合集| 欧美在线亚洲一区| 亚洲欧洲一区二区三区| 一区二区日韩| 激情久久久久久久久久久久久久久久| 免费久久久一本精品久久区| 欧美激情一区二区三区四区| 亚洲欧美成人一区二区在线电影| 欧美亚洲午夜视频在线观看| 在线日韩中文字幕| 夜夜嗨一区二区| 韩国一区电影| 日韩天堂在线视频| 国产真实精品久久二三区| 亚洲国产成人在线播放| 国产精品一二三视频| 欧美成va人片在线观看| 国产精品国产三级国产普通话蜜臀 | 一区二区三区在线观看欧美| 亚洲国产欧美不卡在线观看 | 久久精品二区| 欧美成人免费播放| 欧美日韩一区二区高清| 国内视频一区| 亚洲破处大片| 国产综合色产| 亚洲小说春色综合另类电影| 亚洲精品日产精品乱码不卡| 香蕉精品999视频一区二区| 999亚洲国产精| 久久精品国产成人| 午夜精品久久久久久久久| 老司机免费视频久久| 亚洲欧美日韩爽爽影院| 欧美国产视频在线观看| 卡一卡二国产精品| 国产精品资源| 一区二区三区欧美日韩| 亚洲日本国产| 久久资源在线| 麻豆精品一区二区av白丝在线| 国产欧美日韩| 亚洲小视频在线| 亚洲制服丝袜在线| 欧美精品一区二区三| 欧美激情一区| 亚洲全黄一级网站| 久久综合色8888| 久久一区免费| 精品999网站| 欧美一站二站| 久久精品亚洲一区| 国产精品制服诱惑| 性欧美超级视频| 久久精品国产2020观看福利| 国产精品综合久久久| 亚洲综合精品| 久久久久久久999精品视频| 国产伦精品一区二区三区四区免费 | 亚洲欧美日产图| 欧美日韩性生活视频| 日韩视频永久免费观看| 99在线观看免费视频精品观看| 欧美成人有码| 亚洲欧洲日韩综合二区| 99精品视频免费在线观看| 欧美成人精品一区二区| 亚洲国产欧美一区二区三区同亚洲 | 免费观看日韩av| 亚洲福利专区| 一本在线高清不卡dvd| 欧美日韩不卡视频| 国产精品99久久久久久久vr| 亚洲男人av电影| 国产日韩欧美精品一区| 欧美在线www| 久久这里只有精品视频首页| 在线看片一区| 蜜臀久久99精品久久久久久9| 欧美激情精品久久久久久| …久久精品99久久香蕉国产| 久热精品视频| 亚洲剧情一区二区| 亚洲高清一二三区| 欧美日韩成人一区| 日韩图片一区| 欧美亚洲专区| 黄色综合网站| 欧美精品一区三区在线观看| 亚洲一区区二区| 久热精品在线| 亚洲视频一区二区| 国内外成人免费激情在线视频 | 最新成人av在线| 欧美午夜在线一二页| 欧美中文在线视频| 亚洲黄色天堂| 久久爱www久久做| 亚洲欧洲精品一区| 国产精品一级在线| 欧美黑人国产人伦爽爽爽| 亚洲在线黄色| 亚洲国产精品美女| 久久国产黑丝| 亚洲视频电影在线| 在线欧美一区| 国产一区二区三区黄视频| 欧美激情一二三区| 久久精品一区二区三区中文字幕| 亚洲日韩视频| 欧美wwwwww| 久久成人免费日本黄色| 夜夜嗨av色一区二区不卡| 韩国精品在线观看| 国产精品视频在线观看| 欧美精品免费在线观看| 久久露脸国产精品| 欧美专区在线观看一区| 中文欧美日韩| 日韩网站在线观看| 亚洲激情网站| 欧美激情在线观看| 久久亚洲国产精品一区二区| 午夜在线a亚洲v天堂网2018| 99精品热视频只有精品10| 亚洲国产视频a| 在线播放豆国产99亚洲| 国产日韩精品视频一区| 国产精品高潮呻吟久久| 欧美日韩麻豆| 欧美日韩国产小视频在线观看| 鲁大师成人一区二区三区| 欧美综合第一页| 午夜国产欧美理论在线播放| 在线一区二区三区四区五区| 日韩一级免费观看| 亚洲麻豆av| 99国产精品久久久久老师| 亚洲日本欧美| 99国产一区二区三精品乱码| 亚洲日本va午夜在线电影 | 欧美国产一区二区在线观看 | 亚洲天堂成人在线观看| 亚洲视频在线一区| 亚洲午夜一级| 午夜精品www| 欧美一区激情| 久久久xxx| 久久躁狠狠躁夜夜爽| 免费人成精品欧美精品| 欧美国产欧美综合| 亚洲人永久免费| 亚洲午夜精品久久久久久app| 亚洲专区在线| 久久国产综合精品| 免费日韩成人| 欧美日韩精品| 国产精品第13页| 艳女tv在线观看国产一区| 亚洲精一区二区三区| 一区二区三区久久久| 午夜精品久久久久久久久久久| 欧美在线你懂的| 欧美 日韩 国产 一区| 欧美—级在线免费片| 国产精品色午夜在线观看| 国色天香一区二区|