• <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>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            內存管理(operator new與new operator)

             

             

            今天看了大名鼎鼎的Scott Meyers所著的〈effective c++〉和〈more effective c++〉中關于newdelete的介紹,驚訝不已,大師果然名不虛傳,研究的如此細致、透徹,讓我這個菜鳥受益非淺(竊喜,呵呵)。

                   C++new operatoroperator new非一回事也,new operator(即所謂的new expression)乃語言內建,咱們是沒法改變其行為的,當你寫string *ps = new string("Hands up!")時,你所使用的new是所謂的new operator,它其實干了兩件事:一、分配足夠的內存(實際大小是大于所創建的對象大小)二、調用對象構造函數,new operator永遠干這兩件事。上面的那段代碼大約反映以下的行為:

                  void *mem = operator new(sizeof(string));

                 call string::string("Hands up!") on *mem;

                 string *ps = static_cast<string*>(mem);

            也就是說operator new僅僅分配內存(就像malloc一樣),我們能夠做的僅僅是重載operator new,為自己的類創建一個定制的內存管理方案,這也讓我有點明白為什么在重載operator new的時候并沒有寫調用構造函數的代碼,但它確實被調用了,原來都是new operator搞的鬼。

             

            posted on 2010-06-29 20:39 肥仔 閱讀(597) 評論(0)  編輯 收藏 引用 所屬分類: C++ 基礎

            久久久精品国产| 色综合久久无码五十路人妻| 久久精品亚洲乱码伦伦中文| 久久精品国产亚洲一区二区三区| 国产精品中文久久久久久久| 久久99久久99小草精品免视看 | 性高湖久久久久久久久| 久久天堂电影网| 国产成人精品白浆久久69| 久久久久久国产精品无码下载 | 午夜精品久久影院蜜桃| 亚洲国产精品无码成人片久久| 久久se精品一区二区影院| 亚洲香蕉网久久综合影视| 午夜精品久久久久久影视777| 久久毛片免费看一区二区三区| 伊人久久大香线蕉AV色婷婷色| 国产亚洲色婷婷久久99精品| 国内精品久久久久久久久| 亚洲国产精品高清久久久| 色婷婷久久久SWAG精品| 青青热久久综合网伊人| 狠狠色丁香久久婷婷综合蜜芽五月 | 国产精品久久久久国产A级| 久久午夜免费视频| 久久人人超碰精品CAOPOREN| 天天爽天天爽天天片a久久网| 国产精品久久久久久久久软件 | 久久天天躁夜夜躁狠狠| 久久久久99这里有精品10| 一本大道加勒比久久综合| 久久美女人爽女人爽| 欧美亚洲国产精品久久蜜芽| 久久国产精品无码HDAV| 国产精品禁18久久久夂久| 久久婷婷五月综合色高清| AV无码久久久久不卡网站下载| 精品久久亚洲中文无码| 久久久久久久女国产乱让韩| 久久99精品久久久久婷婷| 亚洲国产成人精品女人久久久|