天天看點

c++類模闆的聲明與定義

類模闆的定義,一般的簡單定義很多,我以為我了解,當我想嘗試取去用的時候,發現并非如此。

簡單定義如下:

template<class T>  // typename 可以代替 class
class Unity{
private:
    T a;
public:
    void show(T b){};  //聲明與定義擋在一起
};
           

在測試程式中

int main(){
    Unity<int> u;
    ……
}
           

遇到的一個問題:模闆不能和函數一樣在頭檔案中聲明,在另一個程式中實作,會導緻“編譯分離”,應該有方法可以解決這個問題,但是我暫時沒有實作,需要時進一步研究。

那麼就按照推薦的聲明與定義盡量保持在一個檔案中

繼續閱讀