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

            杰 & C++ & Python & DM

            C++中關(guān)于構(gòu)造函數(shù)的幾個(gè)問題

            首先我們給出一個(gè)類的例子

            class CStack
            {
            public:
                   CStack();  
                   CStack(
            int  size=100); 
                   CStack(
            const CStack& st);   //復(fù)制構(gòu)造函數(shù),注意使用引用
            private:    
                   
            int _size;
                   
            int _count;
                   
            int* _s;           
            }
            ;
            CStack::CStack(
            const CStack& st)
            {
                  _size
            =st._size;
                  
            if(_size > 0)
                  
            {
                           _s 
            = new int[_size];
                           _count 
            = st._count;         
                           
            for(int i=0; i<_count; ++i)
                                   _s[i] 
            = st._s[i];             
                  }
                     
                  
            else
                  
            {
                      _s 
            =  0;
                      _count 
            = 0;           
                  }
                                                        
            }


            int main()
            {
                CStack st;
                
            return 0;    
            }



            一. 在main()中,對(duì)象st不知道該調(diào)用哪一個(gè)構(gòu)造函數(shù),因?yàn)镃Stack()和CStack(int  size=100)都滿足條件,此時(shí)正確的編譯器會(huì)立即標(biāo)示這種沖突,強(qiáng)迫實(shí)現(xiàn)者解決這個(gè)問題。

            二. 假設(shè)我們已經(jīng)有了一個(gè)CStack對(duì)象s1
            CSatck s2=s1;      //這個(gè)句子將會(huì)調(diào)用復(fù)制構(gòu)造函數(shù)
            CStack s3 = CStack(200);   //這個(gè)句子將會(huì)做什么呢?

            首先,產(chǎn)生一個(gè)臨時(shí)CStack對(duì)象,不妨命名為sss,并調(diào)用構(gòu)造函數(shù)CStack::CStack(200),隨后執(zhí)行復(fù)制構(gòu)造函數(shù)。也就是說,它相當(dāng)于

            CStack sss(200);
            CStack s3(sss);

            這很浪費(fèi)時(shí)間,不過,大多數(shù)編譯器還是能優(yōu)化這種語句。但是我們?yōu)槭裁床火B(yǎng)成一個(gè)好的習(xí)慣,直接寫成
            CStack s3(200)呢?

            posted on 2009-04-29 17:45 jaysoon 閱讀(403) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++

            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            收藏夾

            C++

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            色综合久久综合网观看| 亚洲中文字幕无码一久久区| 久久精品国产免费| 91亚洲国产成人久久精品| 狠狠久久综合| 乱亲女H秽乱长久久久| 久久国产高清一区二区三区| 久久久久国产精品人妻| 精品久久久久久无码专区 | 久久99免费视频| 亚洲国产成人久久笫一页| 国内精品伊人久久久久av一坑| 久久精品免费大片国产大片| 久久久噜噜噜久久中文福利| 久久久网中文字幕| 久久综合综合久久97色| 久久久精品人妻一区二区三区蜜桃| 久久狠狠一本精品综合网| 国内精品久久久久久99蜜桃| 久久精品综合网| 久久久久国产亚洲AV麻豆| 欧美伊香蕉久久综合类网站| 亚洲国产欧美国产综合久久 | 国产精品久久久久久久人人看| 久久99国产精品久久| 亚洲欧美伊人久久综合一区二区 | 久久国产精品无码网站| 国产美女久久精品香蕉69| 欧美日韩精品久久久免费观看| 久久精品成人免费观看97| 久久电影网一区| 99久久精品免费看国产免费| 精品999久久久久久中文字幕| 久久精品国产亚洲av水果派| 久久婷婷五月综合国产尤物app| 色欲综合久久躁天天躁| 亚洲国产小视频精品久久久三级| 久久精品无码专区免费 | 91精品国产色综合久久| 精品国产乱码久久久久久郑州公司| 一本色道久久88—综合亚洲精品|