• <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>
            隨筆-34  評論-108  文章-0  trackbacks-0
                new有三種使用方式:plain new,nothrow new和placement new。
            (1)plain new顧名思義就是普通的new,就是我們慣常使用的new。在C++中是這樣定義的:
                void* operator new(std::size_t) throw(std::bad_alloc);
                void operator delete(void *) throw();
            提示:plain new在分配失敗的情況下,拋出異常std::bad_alloc而不是返回NULL,因此通過判斷返回值是否為NULL是徒勞的。
            (2)nothrow new是不拋出異常的運算符new的形式。nothrow new在失敗時,返回NULL。定義如下:
                void * operator new(std::size_t,const std::nothrow_t&) throw();
                void operator delete(void*) throw();
            (3)placement new意即“放置”,這種new允許在一塊已經分配成功的內存上重新構造對象或對象數組。placement new不用擔心內存分配失敗,因為它根本不分配內存,它做的唯一一件事情就是調用對象的構造函數。定義如下:
                void* operator new(size_t,void*);
                void operator delete(void*,void*);
            提示1:palcement new的主要用途就是反復使用一塊較大的動態分配的內存來構造不同類型的對象或者他們的數組。
            提示2:placement new構造起來的對象或其數組,要顯示的調用他們的析構函數來銷毀,千萬不要使用delete。
            char* p = new(nothrow) char[100];
            long *q1 = new(p) long(100);
            int *q2 = new(p) int[100/sizeof(int)];
            posted on 2007-04-03 17:31 探丫頭 閱讀(4037) 評論(3)  編輯 收藏 引用 所屬分類: 編程語言——C++

            評論:
            # re: new的三中使用方法 2007-04-04 06:56 | lele
            char* p = new(nothrow) char[100];
            long *q1 = new(p) long(100);
            int *q2 = new(p) int[100/sizeof(int)];

            這三句的意思是先用nothrow new申請char[100]空間,再在這片空間上申請一個long類型的空間存放100,然后是int型的數組?  回復  更多評論
              
            # re: new的三中使用方法 2007-04-04 08:16 | 平凡小草
            @lele
            第二句是在p這個地址開始的空間,放置一個值為一個long類型的對象
            第三句是在p這個地址開始的空間,放置一個具有100/sizeof(int)個的int數組  回復  更多評論
              
            # re: new的三中使用方法 2008-03-03 12:34 | 打分得分
            講的太簡短了。。不是很全吧!  回復  更多評論
              
            欧美伊人久久大香线蕉综合 | 国产成人久久精品麻豆一区 | 久久香蕉国产线看观看99| 久久亚洲综合色一区二区三区| 91久久成人免费| 久久天天躁狠狠躁夜夜2020一 | 无码乱码观看精品久久| 久久精品国产99久久久| 久久噜噜久久久精品66| 久久国产亚洲精品无码| 久久久精品人妻无码专区不卡| 亚洲愉拍99热成人精品热久久| 99久久精品免费观看国产| 亚洲AV日韩AV永久无码久久| 久久精品无码一区二区三区免费| 久久精品国产亚洲AV香蕉| 狠狠色丁香久久婷婷综合蜜芽五月 | 精品久久久无码21p发布| 久久精品人人做人人妻人人玩| 欧美一区二区三区久久综| 人妻精品久久久久中文字幕| 奇米综合四色77777久久| 亚州日韩精品专区久久久| 国产成人精品久久亚洲高清不卡| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 国产高潮国产高潮久久久91 | 精品久久久久久无码中文字幕一区 | 精品免费久久久久久久| 久久精品免费全国观看国产| 国产精品久久久久久久久鸭| 久久国产精品99国产精| 久久亚洲精品中文字幕| 99精品国产综合久久久久五月天| 久久精品极品盛宴观看| 久久伊人五月丁香狠狠色| 性做久久久久久久久老女人| 久久这里的只有是精品23| 亚洲精品国产自在久久| yy6080久久| 久久香蕉国产线看观看精品yw| 麻豆成人久久精品二区三区免费|