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

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

            內(nèi)存管理(operator new與new operator)

             

             

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

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

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

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

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

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

             

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

            久久久久久青草大香综合精品| 精品国产青草久久久久福利| 日本免费久久久久久久网站| 久久国产福利免费| 久久天天躁狠狠躁夜夜不卡| 99久久久国产精品免费无卡顿 | 亚洲欧洲日产国码无码久久99| 久久久国产亚洲精品| 99久久国产热无码精品免费| 伊人久久大香线蕉精品| 久久午夜免费视频| 久久久久夜夜夜精品国产| 久久久久亚洲AV成人网| 久久精品aⅴ无码中文字字幕不卡| 久久精品国产福利国产琪琪| 久久人人爽人人爽人人AV| 久久婷婷五月综合97色直播| 9久久9久久精品| 久久久久人妻一区二区三区vr| 久久亚洲2019中文字幕| 国产福利电影一区二区三区,免费久久久久久久精| 国内精品久久久久久久久| 久久久久久亚洲精品成人| 久久久久久伊人高潮影院| 亚洲国产精品无码久久九九| 国产亚洲色婷婷久久99精品91| 久久精品国产亚洲av影院| 亚洲AV乱码久久精品蜜桃| 久久国产亚洲精品| 亚洲国产成人久久综合区| 国产精品免费久久| 国产精品欧美久久久久天天影视| 国产午夜精品理论片久久影视| 婷婷五月深深久久精品| 久久精品国产亚洲AV蜜臀色欲 | 老男人久久青草av高清| 久久亚洲精品无码观看不卡| 久久综合九色欧美综合狠狠| 久久久国产精华液| 性做久久久久久久久老女人| 久久久久99这里有精品10|