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

            tbwshc

            tbw

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            (轉(zhuǎn)載)C++教程網(wǎng)www.cppcourse.com

            new有三種用法:new operator、operator new、placement new

            new operator

            new operator是最常見的用法,如 Emp* e1 = new Emp;(Emp是一個(gè)類) 這里new有兩種作用:分配空間、初始化對(duì)象(調(diào)用了構(gòu)造函數(shù))

            operator new

            operator new作用是只分配空間,不調(diào)用構(gòu)造函數(shù),如:Emp* e2 = (Emp*)operator new(sizeof(Emp));

            placement new

            placement new作用是在已分配好的空間上初始化對(duì)象,不分配空間,調(diào)用拷貝構(gòu)造函數(shù),如:new ((void *)e2) Emp(*tb1);

            示例代碼如下:

            // Emp.h
            #ifndef _EMP_H_
            #define _EMP_H_

             

            class Emp
            {
            public:
            Emp();
            Emp(const Emp& other);
            ~Emp();
            };

            #endif // _EMP_H_

            // Emp.cpp

            #include “Emp.h”
            #include <iostream>
            using namespace std;

            Emp::Emp()
            {
            cout<<“Emp…”<<endl;
            }

            Emp::Emp(const Emp& other)
            {
            cout<<“Copy Emp…”<<endl;
            }

            Emp::~Emp()
            {
            cout<<“~Emp…”<<endl;
            }

            // main.cpp
            #include “Emp.h”
            #include <iostream>
            void main()
            {
            using namespace std;
            // new operator 分配空間,調(diào)用構(gòu)造函數(shù)
            Emp* e1 = new Emp;
            // operator new 只分配空間
            Emp* e2 = (Emp*)operator new(sizeof(Emp));
            // placement new 不分配空間,調(diào)用拷貝構(gòu)造函數(shù)
            new ((void *)e2) Emp(*e1);
            // 顯示調(diào)用析構(gòu)函數(shù)
            e2->~Emp();
            // 僅釋放空間,不調(diào)用析構(gòu)函數(shù)
            operator delete(e2);
            // 調(diào)用析構(gòu)函數(shù),釋放空間
            delete e1;

            }

            posted on 2012-08-12 12:44 tbwshc 閱讀(1620) 評(píng)論(0)  編輯 收藏 引用
            www亚洲欲色成人久久精品| 99久久国产主播综合精品| 久久国产香蕉一区精品| 久久精品一区二区| 999久久久免费精品国产| 国产精品久久久久AV福利动漫| 99精品国产99久久久久久97| 色综合久久久久久久久五月| 无码日韩人妻精品久久蜜桃| 99国产欧美精品久久久蜜芽| 婷婷久久综合九色综合98| 亚洲狠狠综合久久| 香蕉久久影院| 日韩人妻无码精品久久免费一| 久久久久久精品免费看SSS | 欧美日韩精品久久久免费观看| 一本一道久久a久久精品综合| 国产精品美女久久福利网站| 日产精品久久久久久久性色| 色综合久久久久| 亚洲精品视频久久久| 久久久av波多野一区二区| 久久不见久久见免费影院www日本| 久久有码中文字幕| 久久香蕉超碰97国产精品| 国产亚洲成人久久| 人妻少妇久久中文字幕| 丁香久久婷婷国产午夜视频| 亚洲精品美女久久777777| 国产精品成人久久久久久久| 亚洲香蕉网久久综合影视| 国产精品免费久久久久影院| 久久人人添人人爽添人人片牛牛| 久久精品嫩草影院| 综合人妻久久一区二区精品| 久久99精品久久久久久齐齐| 国内精品久久久久伊人av| 四虎国产精品免费久久| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 2020最新久久久视精品爱| 婷婷久久久亚洲欧洲日产国码AV |