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

            happem

            為什么需要構造函數和析構函數

             

            編譯器無法預期一個程序在執行過程中會在何時創建一些什么對象,而只能根據當時的上下文要求創建,對象的初始化最好能夠通過運行時執行一個函數來完成,而且是在對象創建的同時,這個函數就是構造函數,同樣,對象在完成其使命的時候能夠通過一個函數來銷毀,這就是析構函數。

            當給一個對象分配好原始內存空間的時候,這個對象就應該算創建起來了。只不過它還處于一種“原始狀態”,即末初始化的,不良的狀態,如果把這樣的內存直接拿來使用,除非第一個操作是賦值,否則極有可能出錯。例如:

               Long long1;         //局部變量

               Count<

               Char*pstr=(char*)malloc(1024);

               Cout<

            因此,創建一個變量或動態對象時一定不要忘記初始化。 初始化就是在對象創建的同時使用初值直接填充對象的內存單元,因此,不會有數據類型轉換等中間過程,也就不會產生臨時對象,而賦值則是在對象創建好后任何時候都可以調用的而且可以多次調用的函數,由于它調用的是“=”運算符,因此可能需要進行類型轉換,即會產生臨時對象。

            C++對象可以使用構造函數來初始化,構造函數是任何對象創建時自動調用的第一個成員函數,也是為每個對象僅調用一次的成員函數,所以構造函數的作用就是:當對象的內存分配好后把它原始狀態變成良好的可用的狀態。

            有的程序員可能認為:雖然我沒有在構造函數中初始化數據成員,但是我在聲明一個對象后馬上調用它的set-XXX()函數來初始化它的每一個成員,效果也是一樣的。

            最好為每個類顯式地定義構造函數和析構函數,即使它們暫時空著,尤其是當類含有指針成員或引用成員的時候。

            構造函數的另一重要用途就是給一些可能可能存在的隱含成員如vptr創造一個初始化的機會,否則虛擬機將不能保證實現,每當此時,如果程序員沒有為一個多態類顯式地定義默認構造函數、拷貝構造函數、析構函數或拷貝賦值函數,那么編譯器會自動得生成相應的函數,它們都是public inline的,并在其中插入正確初始化或修改vptr數據成員值的代碼,而且確保基類對象和派生類對象構造時及在它們之間拷貝時vptr能夠指向或重新指向恰當的vtable,這樣的4個函數分布叫非平凡默認構造函數、非平凡拷貝構造函數、非平凡析構函數和非平凡拷貝賦值函數。www.lirenedu.org

            posted on 2012-09-03 10:56 happem 閱讀(662) 評論(0)  編輯 收藏 引用

            久久无码专区国产精品发布| 99久久免费国产精品| 久久人妻少妇嫩草AV蜜桃| 色综合久久久久久久久五月| 久久综合狠狠综合久久激情 | 久久久久无码精品国产| 伊人色综合久久| 天天躁日日躁狠狠久久| 99久久综合国产精品二区| 国内精品人妻无码久久久影院导航 | 国产国产成人久久精品| 亚洲精品美女久久777777| 久久久久国产一区二区三区| 久久精品国产亚洲AV高清热 | 久久免费大片| AA级片免费看视频久久| 99久久久精品| 久久99精品久久久久子伦| 久久久久亚洲av综合波多野结衣| 一级做a爱片久久毛片| 久久九九精品99国产精品| 伊人久久大香线蕉av不卡| 久久久久久久国产免费看| 久久精品国产一区| 狠狠色丁香久久婷婷综| 国内精品久久久久久99| 久久久久亚洲精品天堂| 久久久一本精品99久久精品88| 亚洲精品成人久久久| 亚洲伊人久久综合中文成人网| 久久九色综合九色99伊人| 久久97久久97精品免视看| 精品多毛少妇人妻AV免费久久| 国产—久久香蕉国产线看观看| 精品国产婷婷久久久| 国产一区二区精品久久凹凸| 婷婷久久综合九色综合98| 久久99精品久久久久久野外| 国产成人精品久久亚洲高清不卡 | 亚洲国产精品久久电影欧美| 久久发布国产伦子伦精品|