C++模板來源

來源:互聯網
上載者:User

                  早期的物件導向的語言smalltalk是通過繼承來實現代碼的重用,在做包容期器的時候,是通過“基於object的階層”來實現的,smalltalk中是單繼承,object是樹型的根,每一個類都繼承樹上的一枝。但是在C++中支援多個無關聯的階層,所以“基於object的階層”不能很好的起作用。通過多重繼承可以實現,同時繼承自無關聯的類和object類可以實現,可是C++開始並不支援多重繼承。

                  多重繼承解決這個問題是直觀的,不過卻引入了實踐的複雜度。另外一種可取的方法是:包容器類被作為參數化型別的大型預先處理宏。

                  在C++發明階段,C++之父Stroustrup和貝爾實驗室的C++小組對原先的宏方法進行了修改,對其進行了簡化並將它從預先處理移到了編譯期。這種新的代碼轉換方法稱為模板。模板對代碼的重用方法不是通過繼承和組合來對代碼對象的重用。當使用者使用模板時,參數由編譯器進行替換,這就是模板的執行個體化,不再只是一個類的描述,而是執行個體化成一個類。這個很像原來的宏處理,不過更清晰,更容易使用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.