【41】瞭解隱式介面和編譯期多型

Andy Niu發表於2014-01-10

1、當初為什麼設計C++ Template?

  C++ Template是為了建立型別安全的容器,如vector,可以建立包含Person的vector,也可以建立包含int的vector。後來發現,C++ Template具備更強大的威力,泛型程式設計,也就是寫出的程式碼與所處理的物件型別彼此獨立。

2、物件導向總是顯式介面和執行期多型,這個很好理解。顯式介面就是類的標頭檔案中暴露的方法和欄位,執行時多型就是執行時根據物件的真實型別決定呼叫哪個方法。在泛型程式設計中,暴露的介面是隱式介面,也就是一組有效表示式,期望類的物件具有這些介面,如果沒有程式碼編譯通不過。編譯時多型是指:在編譯時根據模版實參例項化出一個類或者方法。

相關文章