C++中關于構造函數的幾個問題
首先我們給出一個類的例子













































一. 在main()中,對象st不知道該調用哪一個構造函數,因為CStack()和CStack(int size=100)都滿足條件,此時正確的編譯器會立即標示這種沖突,強迫實現者解決這個問題。
二. 假設我們已經有了一個CStack對象s1
CSatck s2=s1; //這個句子將會調用復制構造函數
CStack s3 = CStack(200); //這個句子將會做什么呢?
首先,產生一個臨時CStack對象,不妨命名為sss,并調用構造函數CStack::CStack(200),隨后執行復制構造函數。也就是說,它相當于
CStack sss(200);
CStack s3(sss);
這很浪費時間,不過,大多數編譯器還是能優化這種語句。但是我們為什么不養成一個好的習慣,直接寫成
CStack s3(200)呢?
posted on 2009-04-29 17:45 jaysoon 閱讀(409) 評論(0) 編輯 收藏 引用 所屬分類: C++