<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來,開創未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數據加載中……

    operator new和operator delete學習總結

    operator new和operator delete學習總結
    這塊內容很多很多,那就撿幾個重要的地方說說吧,主要目的是為了在遺忘的時候給自己提個醒,呵呵。
    1。new和delete的重載函數都是static函數,你可以在聲明的時候寫上去,也可以不寫(編譯器自動為你添加),但是事實是無法更改的,它們都是static的。
    2。new和delete必須形式上配對,且里面做的內容也要配對
    void* operator new(size_t size, const char*, int);//調用形式為new("wokao",34) ;
    void operator delete(void *p, const char*, int);//這個delete與上面的那個new配對
    void operator delete(void *p, size_t, const char*, int)//這個delete與上面的那個new不配對
    3。new和delete的標準形式是:
    void* operator new(size_t size);
    void operator delete(void* p);
    或void operator delete(void* p,size_t size);//這個delete可以驗證if( sizeof(X)!=size )
    4。new可以被重載出其他的樣式來;而delete重載時,如果有其他樣式出現,那是為了配合new的新樣式,與此同時也必須得有標準的delete樣式,因為我們最后delete *p的時候調用的是標準的delete樣式,而那個非標準的只是為了在構造函數拋出異常時讓系統調用與新樣式的new配套的新樣式的delete。
    5。只有基類的析構函數被聲明為virtual時(如果你沒有在基類中寫析構函數而是利用默認的或者即便寫了卻忘了加virtual都是不可以的),才可以通過基類的指針(實則指向子類)來delete,達到調用子類delete的目的。
    6。不論你重載不重載,本質上new都是調用::operator new(size)這個全局函數來分配恰當的內存空間,可以在調用new之前通過set_new_handler函數來設置配置內存失敗的回調函數。
    7。new重載函數中的size至少是1,即便類沒有任何成員變量。
    8。new的順序:new->基類的構造函數(在進入基類構造函數之前當然需要先根據初始化列表來初始化基類的部分成員變量)->子類的構造函數(在進入基類構造函數之前當然需要先根據初始化列表來初始化基類的部分成員變量)
    9。delete的順序:子類的析構函數->基類的析構函數->delete
    10。重載new運算符時最好要讓標準的new的調用形式露出來
    void* operator new(size_t size,char*);void* operator new(size_t size);
    或void* operator new(size_t size,char* =NULL);
    11。寫一個new,就最好寫一個與之配套的delete。
    12。對于new[]和delete[]的重載,也完全沒啥區別,就是換了個名稱,除此之外,再無其他特別之處了。

    posted on 2008-07-13 19:58 so true 閱讀(2673) 評論(1)  編輯  收藏 所屬分類: C&C++

    評論

    # re: operator new和operator delete學習總結  回復  更多評論   

    這塊的知識好零碎啊!謝謝你總結的這么清楚這么詳細!期待你的下篇文章!
    2008-07-14 21:43 | pig
    主站蜘蛛池模板: 国产精品视频免费一区二区三区 | 亚洲AV永久无码区成人网站| 亚洲精品乱码久久久久蜜桃| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲av日韩av不卡在线观看 | 国产亚洲综合久久| 日韩成人免费视频| 久久青草亚洲AV无码麻豆| 亚洲精品一二三区| 夫妻免费无码V看片| 亚洲风情亚Aⅴ在线发布| 午夜影院免费观看| 免费女人18毛片a级毛片视频| 亚洲美女又黄又爽在线观看| 一个人看的免费视频www在线高清动漫| 最新亚洲成av人免费看| 日韩国产欧美亚洲v片 | 亚洲aⅴ无码专区在线观看| 在线人成免费视频69国产| 图图资源网亚洲综合网站| 永久在线观看www免费视频| 亚洲综合久久夜AV | 99久久99这里只有免费的精品| 免费观看美女裸体网站| 精品国产日韩亚洲一区在线| 很黄很色很刺激的视频免费| 亚洲成a∧人片在线观看无码| 免费大片黄在线观看yw| 丰满亚洲大尺度无码无码专线 | 99re6在线视频精品免费| 午夜影视日本亚洲欧洲精品一区 | 无码乱人伦一区二区亚洲| 国产大片91精品免费观看不卡| 国产亚洲日韩在线三区| 小说专区亚洲春色校园| 亚洲中文无码永久免费| 亚洲精品mv在线观看| 又爽又黄无遮挡高清免费视频| 亚洲精品亚洲人成在线| 91麻豆国产自产在线观看亚洲| 国产91成人精品亚洲精品|