關於模板的思考

          對於模板函數和模板類來說,其參數類型也是被參數化的,如:

           template <typename T>

           bool compare(const T v1, const T v2)

           {

              return v1 - v2;

           }

         其中的參數v1和v2爲T,只有在運行時(確切的說只有模板代碼被編譯時)纔會確定,所以該文件不能被獨立編譯(將該模板函數單獨編譯到一個文件中如:compare.x)成一個目標文件(.obj文件)。因此 Mricosoft C++ 中 STL 庫的模板類及模板方法只能以源文件的形式提供給用戶(程序員)使用,例如vector模板類的源文件爲vector的文件(沒有後綴名),當我們在程序中使用到vector類時,我們通過模板參數提供了類型信息。此時,c++編譯器就可以將模板代碼(vector的源碼)實例化。

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