• <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>
            春暖花開
            雪化了,花開了,春天來了
            posts - 149,comments - 125,trackbacks - 0
            條款四 避免不必要的默認構造函數

            默認構造函數(指沒有參數的構造函數)是指C++語言中,你不用傳參數就可以調用的構造函數。構造函數用于初始化對象,而默認構造函數可以在不依賴任何外部信息的情況下創建對象。

            在一個完美的世界里,無需任何外部信息即可創建對象的類可以包含默認構造函數,而需要額外信息來創建對象的類則不包含默認構造函數。可是我們的世界是不完美的,所以我們必將一些額外的因素考慮在內。特別地,如果一個類沒有默認構造函數,使用這個類的時候就會有一些限制。

            沒有默認構造函數,在三種情況下它的應用可能會出現問題:
            第一個問題是創建數組的時候,通常沒有很好的辦法可以指定數組元素的構造函數的參數。
            第二個問題是沒有默認構造函數的類他們無法作為許多基于模板的容器類的類型參數使用。因為通常用于實例化模板的哪些類型需要提供默認構造函數。
            第三個問題是在有虛基類的時候應該提供默認構造函數還是不提供默認構造函數。沒有默認構造函數的虛基類使用起來很痛苦,這是因為虛基類的構造函數所要求的參數必須由創建對象所屬的最遠的派生類所提供。

            正因為這些強加于沒有默認構造函數的類上的重中限制,一些人認為所有的類都應該有默認構造函數,即使默認構造函數沒有足夠的信息來完全初始化一個對象。

            但是默認構造函數會影響類的運行效率,有時會使其他成員函數變得復雜。

            如果一個類的構造函數能夠確保所有的數據成員被正確初始化,就能避免付出一些代價。通常默認構造函數不提供這些保證。如果默認構造函數對于某些類沒有太大意義,最好避免使用他們。這給使用這種類加了一些限制,但是當你使用它時,它可以向你保證你能很放心地相信這個類被正確得初始化,并且具有高效的效率。

            說實話,這一章節我看得不是很明白。
            作者在一開始,列舉了一些沒有默認構造函數我們可能遇到的問題,在這些問題下,進而得出默認構造函數所帶來的一些效率和代價困擾。看來還需要在實踐中仔細揣摩揣摩。



            posted on 2009-09-22 13:33 Sandy 閱讀(535) 評論(0)  編輯 收藏 引用 所屬分類: c++學習
            青青草原综合久久大伊人导航 | 婷婷久久久亚洲欧洲日产国码AV| 久久精品女人天堂AV麻| 久久久人妻精品无码一区| 少妇熟女久久综合网色欲| 久久综合久久自在自线精品自| 久久精品国产99国产精偷| 久久精品亚洲日本波多野结衣| 成人国内精品久久久久一区| 久久国产乱子伦精品免费午夜| 久久丫忘忧草产品| 天天综合久久久网| 久久久久久国产精品无码下载 | 狠狠狠色丁香婷婷综合久久五月| 久久久99精品一区二区| 久久久久久久人妻无码中文字幕爆| 香蕉久久一区二区不卡无毒影院| 久久精品国产乱子伦| 狠狠色丁香婷婷综合久久来来去| 一本色综合网久久| 亚洲国产小视频精品久久久三级| 99精品久久精品一区二区| 伊人色综合久久天天人手人婷| 久久九色综合九色99伊人| 国产精品久久成人影院| 亚洲国产精品无码久久98| 国产精品久久久久a影院| 狠狠综合久久综合中文88| 亚洲嫩草影院久久精品| 久久99精品国产自在现线小黄鸭| 亚洲精品午夜国产VA久久成人| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久精品这里只有精99品| 91精品国产综合久久久久久 | 青青青国产成人久久111网站| 久久国产热精品波多野结衣AV | 99热精品久久只有精品| 欧美亚洲国产精品久久蜜芽| 99国产欧美久久久精品蜜芽| 久久超碰97人人做人人爱| 色狠狠久久AV五月综合|