• <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 閱讀(653) 評論(0)  編輯 收藏 引用

            久久综合视频网站| 97久久精品人人做人人爽| 国产精品美女久久久网AV| 99久久综合狠狠综合久久| 久久性精品| 久久婷婷五月综合97色一本一本| jizzjizz国产精品久久| 国产成人精品综合久久久| 日韩欧美亚洲综合久久| 精品熟女少妇a∨免费久久| 久久久精品国产亚洲成人满18免费网站 | 国产精品久久久久a影院| 久久久久无码精品国产| 久久人人爽人人澡人人高潮AV | 精品多毛少妇人妻AV免费久久| 国产69精品久久久久777| 青青青青久久精品国产h久久精品五福影院1421 | 东方aⅴ免费观看久久av| 久久精品亚洲精品国产欧美| 欧洲精品久久久av无码电影| 久久久久99精品成人片| AA级片免费看视频久久| 色综合久久久久无码专区| 亚洲精品乱码久久久久久不卡| 亚洲国产天堂久久综合网站| 热re99久久6国产精品免费| 怡红院日本一道日本久久| 日韩中文久久| 久久婷婷五月综合97色直播| 国产精品亚洲美女久久久| 日韩精品国产自在久久现线拍| 精品免费久久久久久久| 久久99国产综合精品女同| 午夜天堂精品久久久久| 日本强好片久久久久久AAA| 97精品国产97久久久久久免费 | 久久久久中文字幕| 2021国产成人精品久久| 办公室久久精品| 理论片午午伦夜理片久久| 思思久久99热只有频精品66|