2011-12-26 61 views
-1

靜態方法我有一個像下面在模板類

template<class T> 
class Student 
{ 
public: 
    static Student& Instance(); 
} 

template<class T> 
Student<T>& Student<T>::Instance() 
{ 
... 
return student; 
} 

它返回LNK2001錯誤類。我可以用這種方式嗎?

+0

你沒有提供所有相關的代碼。編譯器如何從上面的代碼中知道'student'是什麼? (你的鏈接錯誤可能是因爲你聲明瞭,但是沒有定義學生) – 2011-12-26 09:15:53

+0

是的,請提供一些至少編譯的示例代碼(在合適的地方等分號),然後我們可以看看鏈接器錯誤。 – 2011-12-26 09:21:55

+0

這是真實的代碼嗎?它是否給鏈接器錯誤?我不能。但是,它可以給*編譯*錯誤,因爲類定義不以分號';'結尾。 – Nawaz 2011-12-26 09:30:53

回答

1

您的代碼不明確,所以我嘗試猜測您的問題。如果您在Student.h中聲明瞭類Student並在Student.cpp中實現了方法Instance(),那就是您的問題。在Student.h中實現方法Instance()。

1

Student<T>::Instance應該在頭文件中,要麼你應該在.cpp文件中提供Student<>方法的專門化。