使用C 模板的優點和缺點

2021-05-24 21:33:29 字數 908 閱讀 5862

作為c++語言的新組成部分,模板引入了基於通用程式設計的概念。通用程式設計是一種無須考慮特定物件的描述和發展演算法的方法,因此它與具體資料結構無關。但在決定使用c++模板之前,讓我們分析一下使用模板的優缺點。

目的:當被問及引入c++模板的目的時,c++的發明者bjarne stroustrup告訴我「這是為了支援型別安全、類容器的有效性和演算法的通用性」。

優勢和劣勢:使用模板有很多原因,最主要的為了得到通用程式設計的優點。國際標準化組織(iso)為c++建立了c++標準庫,該標準庫功能強大,這證明了模板的重要性。庫中涉及演算法和容器的部分組成了標準模板庫(簡稱stl)。由於模板的可重用性和可擴充套件性,你可以利用stl來實現效率很高的**。

但是模板也有一些不太為人知的缺點。首先,由於c++沒有二進位制實時擴充套件性,所以模板不能像庫那樣被廣泛使用。模板的資料型別只能在編譯時才能被確定。因此,所有用基於模板演算法的實現必須包含在整個設計的標頭檔案中。通過分析標準模板庫(stl)的標頭檔案,你可以很清楚的認識到這一點。

另外,由於模板只是最近加入c++標準中,所以有些c++編譯器還不支援模板,當使用這些編譯器時編譯含有模板的**時就會發生不相容問題。例如,mozilla瀏覽器開發組之所以沒有使用模板就是因為交叉平台會導致模板的不相容。同樣的,如果當開發者需要跨越好幾個平台而有的平台可能只有老的c++編譯器的時候,使用模板也是不明智的。

即使到現在,模板的一些高階特性,例如區域性特殊化和特殊化順序在不同的c++標準實現中也還是不統一的。

儘管如此,結合stl使用模板還是可以大大減少開發時間。模板可以把用同乙個演算法去適用於不同型別資料,在編譯時確定具體的資料型別。

比方說,假設你希望實現乙個諸如tcp/ip堆疊所用的開窗重排序機制。這個機制可用於ip資料報和其它資料報格式。通過使用模板後,開窗重排序機制就像流控制那樣,無須隨所處理資料格式而改變。

使用C 模板的優點和缺點

作為c 語言的新組成部分,模板引入了基於通用程式設計的概念。通用程式設計是一種無須考慮特定物件的描述和發展演算法的方法,因此它與具體資料結構無關。但在決定使用c 模板之前,讓我們分析一下使用模板的優缺點。目的 當被問及引入c 模板的目的時,c 的發明者bjarne stroustrup告訴我 這是為...

使用AMP的優點和缺點

如何使用amp與wordpress外掛程式 整合和實現amp的方式在很大程度上取決於你正在使用的平台。如果wordpress是你的首選,那麼有幾種簡單的方法可以使用amp。正如wordpress的情況一樣,你最好使用乙個或多個專門為此任務建立的外掛程式。接下來我們將 其中的三種選項。但是首先!在使用...

C語言的優點和缺點

1.物件導向程式設計功能 oops 物件導向程式設計的特點是c語言缺少的,你只能使用面向過程的語言來開發程式。c沒有的oops概念,這就是為什麼c 被開發。2.執行時型別檢查是不可用 在c語言沒有規定執行時型別檢查,比如我傳遞浮點值,而接收引數為整數型別那麼值將會被改變,它不會給任何型別的錯誤資訊。...