首先我們給出一個(gè)類的例子
一. 在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ì)象s1CSatck 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++
Powered by: C++博客 Copyright © jaysoon