爲什麼模板函數的定義也要在頭文件裏

    對於模板,最重要的一點,就是在定義它的時候,編譯器並不會對它進行編譯,因爲它沒有一個實體可用。

     只有模板被具體化(specialization)之後(用在特定的類型上),編譯器纔會根據具體的類型對模板進行編譯。所以才定義模板的時候,會發現編譯器基本不會報錯,也做不出智能提示。但是當它被具體用在一個類上之後,錯誤就會大片大片的出現,卻往往無法準確定位。

       因此設計模板就有設計模板的一套思路和方式

       因爲模板的這種特殊性,它並沒有自己的準確定義,因此我們不能把它放在.cpp文件中,而要把他們全部放在.h文件中進行書寫。這也是爲了在模板具體化的時候,能夠讓編譯器可以找到模板的所有定義在哪裏,以便真正的定義方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章