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

HUUYUU

寫operator new和operator delete時要遵循常規(guī)

自己重寫operator new時,很重要的一點是函數(shù)提供的行為要和系統(tǒng)缺省的operator new一致。實際做起來也就是:要有正確的返回值;可用內(nèi)存不夠時要調(diào)用出錯處理函數(shù);處理好0字節(jié)內(nèi)存請求的情況。此外,還要避免不小心隱藏了標(biāo)準(zhǔn)形式的new。

非類成員形式的operator new的偽代碼:

void * operator new(size_t size)        // operator new還可能有其它參數(shù)
{                                      

  if (size == 0)                      // 處理0字節(jié)請求時,
  {

        size = 1;                            // 把它當(dāng)作1個字節(jié)請求來處理

  }                                    
  while (1)

{
    分配size字節(jié)內(nèi)存;

      if (分配成功)
           return (指向內(nèi)存的指針);

    // 分配不成功,找出當(dāng)前出錯處理函數(shù)
      new_handler globalhandler = set_new_handler(0);
     set_new_handler(globalhandler);

      if (globalhandler) (*globalhandler)();
      else throw std::bad_alloc();
  }
}

 

為特定類寫的new往往沒有考慮該類被繼承的情況,使用sizeof(父類)獲得大小,但是如果發(fā)生子類調(diào)用父類的new時,往往

會出錯,子類的size往往大于父類的size。最好父類的new應(yīng)該這么寫:

void * base::operator new(size_t size)
{
  if (size != sizeof(base))                  // 如果數(shù)量“錯誤”,讓標(biāo)準(zhǔn)operator new,精華部分。
    return ::operator new(size);        // 去處理這個請求
                                                         //

  ...                                                    // 否則處理這個請求
}

 

對于operator delete(以及它的伙伴operator delete[]),情況更簡單。所要記住的只是,c++保證刪除空指針永遠(yuǎn)是安全的,所以你要充分地應(yīng)用這一保證。

下面是非類成員形式的operator delete的偽代碼:
void operator delete(void *rawmemory)
{
  if (rawmemory == 0) return;   //如果指針為空,返回
                                 //

  釋放rawmemory指向的內(nèi)存;

  return;
}

 

這個函數(shù)的類成員版本也簡單,只是還必須檢查被刪除的對象的大小。假設(shè)類的operator new將“錯誤”大小的分配請求轉(zhuǎn)給::operator new,那么也必須將“錯誤”大小的刪除請求轉(zhuǎn)給::operator delete:

void base::operator delete(void *rawmemory, size_t size)
{
  if (rawmemory == 0) return;          // 檢查空指針

  if (size != sizeof(base))                 // 如果size"錯誤",

{    
    ::operator delete(rawmemory);  // 讓標(biāo)準(zhǔn)operator來處理請求
    return;                       
  }

  釋放指向rawmemory的內(nèi)存;

  return;
}

有關(guān)operator new和operator delete(以及他們的數(shù)組形式)的規(guī)定不是那么麻煩,重要的是必須遵守它。只要內(nèi)存分配程序支持new-handler函數(shù)并正確地處理了零內(nèi)存請求,就差不多了;如果內(nèi)存釋放程序又處理了空指針,那就沒其他什么要做的了。至于在類成員版本的函數(shù)里增加繼承支持,那將很快就可以完成。

posted on 2008-01-22 09:42 HUYU 閱讀(424) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品视频| 免费在线观看日韩欧美| 国模一区二区三区| 国产一区二区三区日韩| 亚洲午夜免费视频| 日韩亚洲视频| 亚洲一卡二卡三卡四卡五卡| 亚洲一区二区精品在线| 午夜精品av| 久久免费国产| 欧美欧美天天天天操| 国产精品久久精品日日| 一区二区三区在线观看欧美| 亚洲激情六月丁香| 亚洲女同同性videoxma| 欧美在线短视频| 欧美电影在线观看| 99国产精品久久久久久久久久 | 亚洲色在线视频| 久久aⅴ国产紧身牛仔裤| 欧美成人精品福利| 一区二区三区免费网站| 久久精品视频在线播放| 欧美日韩dvd在线观看| 国产一区二区三区电影在线观看| 亚洲二区免费| 亚洲欧美一级二级三级| 欧美成人中文| 午夜亚洲精品| 欧美日韩国产欧| 在线看欧美日韩| 欧美一区三区二区在线观看| 亚洲国产老妈| 亚洲女人天堂成人av在线| 免费观看成人| 国产在线观看精品一区二区三区| 亚洲国产日韩综合一区| 性色av一区二区怡红| 亚洲第一福利社区| 久久都是精品| 国产精品成人午夜| 亚洲精品国精品久久99热一| 欧美中文字幕久久| 99热免费精品| 欧美成年人视频| 尤物在线精品| 久久国产免费| 99精品国产在热久久婷婷| 免费成人av在线| 国产午夜精品在线| 欧美一区1区三区3区公司| 一区二区三区视频在线 | 欧美国产日韩一区| 亚洲高清成人| 欧美成人免费在线| 久久裸体艺术| 一区二区在线视频| 久久久久久久91| 新狼窝色av性久久久久久| 午夜激情综合网| 国产精品99免费看 | 亚洲韩日在线| 欧美经典一区二区| 亚洲精品资源美女情侣酒店| 亚洲第一综合天堂另类专| 久久综合影音| 亚洲国产日韩在线| 亚洲区第一页| 欧美日本精品| 夜夜嗨av一区二区三区网站四季av | 一区二区亚洲精品| 欧美aⅴ99久久黑人专区| 老巨人导航500精品| 亚洲全部视频| 日韩视频一区二区三区| 国产精品成人久久久久| 欧美在线亚洲综合一区| 欧美在线在线| 亚洲日本成人网| 在线视频精品一区| 国产综合精品| 最新成人av在线| 欧美亚洲成人网| 久久综合网络一区二区| 欧美精彩视频一区二区三区| 亚洲欧美日韩综合国产aⅴ| 久久www成人_看片免费不卡| 亚洲精品国产拍免费91在线| 亚洲一区二区免费在线| 亚洲夫妻自拍| 中文亚洲字幕| 亚洲国产精品一区二区www| 99视频在线精品国自产拍免费观看| 国产农村妇女精品一二区| 欧美寡妇偷汉性猛交| 国产精品你懂得| 亚洲成色精品| 国产亚洲精品aa午夜观看| 亚洲高清一区二| 国产日韩在线一区| 亚洲精品视频在线看| 狠狠v欧美v日韩v亚洲ⅴ| 日韩午夜中文字幕| 亚洲电影免费观看高清完整版在线观看 | 亚洲经典三级| 国产伪娘ts一区| 亚洲每日在线| 亚洲第一精品夜夜躁人人爽| 亚洲一区综合| 99在线精品免费视频九九视| 老**午夜毛片一区二区三区| 欧美另类videos死尸| 榴莲视频成人在线观看| 欧美无砖砖区免费| 亚洲黑丝一区二区| 在线不卡视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲人成欧美中文字幕| 欧美在线观看视频一区二区三区| 亚洲午夜久久久| 欧美激情精品久久久久久黑人| 久久久xxx| 国产欧美一区二区精品婷婷| 中日韩在线视频| 亚洲天堂av电影| 欧美日本不卡| 最新国产拍偷乱拍精品| 亚洲韩国一区二区三区| 久久伊人免费视频| 美女露胸一区二区三区| 国产亚洲欧美日韩日本| 午夜日韩在线| 久久国产天堂福利天堂| 国产欧美一区二区三区另类精品 | 亚洲日本无吗高清不卡| 亚洲欧洲三级电影| 快she精品国产999| 亚洲电影免费在线观看| 亚洲三级视频在线观看| 欧美成人一区二区三区| 亚洲人成网站影音先锋播放| 亚洲麻豆视频| 欧美久久精品午夜青青大伊人| 亚洲国产精品久久久久久女王| 亚洲人成小说网站色在线| 欧美 日韩 国产精品免费观看| 欧美电影电视剧在线观看| 亚洲剧情一区二区| 欧美天堂亚洲电影院在线播放| aa级大片欧美| 久久九九国产| 亚洲国产精品黑人久久久| 欧美大片免费观看| 日韩视频在线一区二区| 欧美亚洲综合网| 激情欧美一区二区| 欧美夫妇交换俱乐部在线观看| 亚洲精品在线观看免费| 亚洲欧洲av一区二区| 激情欧美一区二区三区| 欧美激情中文不卡| 亚洲午夜精品久久| 浪潮色综合久久天堂| 一区二区三区回区在观看免费视频| 国产精品爱久久久久久久| 久久aⅴ国产欧美74aaa| 亚洲国产一区二区a毛片| 亚洲欧美日本国产专区一区| 精品盗摄一区二区三区| 欧美日韩亚洲高清一区二区| 欧美一区二区三区免费看 | 国产精品午夜在线| 久久人人爽人人爽爽久久| 免费不卡在线观看| 久久狠狠亚洲综合| 国产精品成人一区| 久久成人久久爱| 亚洲精品久久嫩草网站秘色 | 先锋影音久久久| 在线日韩成人| 国产精品久99| 欧美黑人多人双交| 欧美一区二区在线播放| 亚洲另类一区二区| 免费日韩成人| 欧美专区日韩专区| 亚洲视频在线看| 亚洲激情视频| 国产一区二区三区在线免费观看| 欧美精品一区在线发布| 亚洲第一在线综合网站| 国产精品午夜久久| 欧美日韩精品一区二区在线播放| 欧美专区在线观看| 亚洲天堂网站在线观看视频| 91久久精品日日躁夜夜躁欧美| 国产伦精品一区二区三区视频黑人 | 亚洲欧美网站| 亚洲视频一起| 99视频精品|