今天寫程序,將模板內(nèi)的定義放在了.h文件中,而實現(xiàn)放在了.cpp中,
編譯通過了,可連接怎么也不能成功。。
查了一些書才知道,模板類的定義和實現(xiàn)必須放在同一文件,
《c++編程思想》中說:模板類定義很特殊,由template<...>定義的任何東西都意味著編譯器在當(dāng)時不為它分配內(nèi)存空間,它一直處于等待狀態(tài),直到被一個模板實例告知,即模板參數(shù)是由編譯器來替換的。
為了容易使用,幾乎總是在頭文件中放置全部的模板聲明和定義。有時,也可能為了滿足特殊需要而要在獨立的cpp中放置模板的實現(xiàn)。但大部分現(xiàn)在的編譯器還不支持模板類的定義和實現(xiàn)分開