偶感得到一本好書,所以分享下心得,看的很慢,呵呵。
總括:此部分寫的還是比較好,特別是第一章,介紹了面向對象編程的特別,關鍵是從一個解決問題的角度來分析,相比較而言,C++ Primer更顯得雜亂無章。通過對問題深入,根據解決問題的方法,來實現最合理化的得到目的,從而引出繼承等等一系列概念和手段。
1.
構造器
e.g Data(int
monthln,int dayln,int yearln)
{
Month = monthln;
Day =
dayln;
Year =
yearln;
}
Date thedate(7,1,2003);
Date thisdate;
第一個調用了用戶定義的構造函數來初始化相應的數據,問題是,如果是0-參數的構造器呢?就是下面的那種情況,沒有任何參數,默認的,編譯器會自動生成一個,這個就是缺省構造函數,但是如果用戶定義了一個0-參數的構造器,那么就不會自動生成這樣一個了。從安全性角度去看,定義類的時候,應當顯示的定義一個缺省構造函數(如果有繼承的話,沒有定義基類的缺省構造函數是會出現編譯錯誤的。)
注意:一個構造器,不管有沒有參數,都不會自動初始化類的字段,所以必須自己顯式的寫出代碼來初始化。
|
2.
繼承的細節
我們可能經常遇到這樣的問題,在開發一個類B的時候,發現其他的一些類A的方法是非常有用的。一個可能性就是令B從A繼承,也就是說,B是A的子類,這樣就可以使用A的所有方法;還有一種方案,就是在B中定義一個字段,它的類型是A,通過這個字段調用A的方法。前者,就是“Is a”(是一個)的關系,而后者就是”Has a”(有一個的關系)。如何實現這種區分更好的來規劃呢,一般,如果類B分享了A的全部功能,那么B從A繼承是更好的選擇,但是如果B中只有一個組件能從A中受益,那么就是Has a來實現了。。
|
posted on 2009-11-11 22:49
deercoder 閱讀(373)
評論(0) 編輯 收藏 引用 所屬分類:
C/C++