[英]Question regarding C++ Templates
我為有關模板的測試程序使用了一個簡單的類,這就是我所做的:
template <typename T>
class test
{
public:
test<T>::test();
T out();
};
template <typename T>
test<T>::test()
{
}
T test<T>::out()
{
}
int main()
{
//test<int> t;
}
但是,當我嘗試編譯時,它說“ T”:未聲明的標識符和類模板的使用需要模板參數列表 ,指向同一行,在該行中我實現了方法out() 。 誰能解釋這個問題是什么? 我正在使用Visual Studio 2008。
以下更准確:
template <typename T>
class test
{
public:
test();
T out();
};
template <typename T>
test<T>::test()
{
}
template <typename T>
T test<T>::out()
{
}
1)不要在類內部使用<T>
2)不要忘記在類主體之外的每個方法聲明之前聲明模板<T>
您對out成員的定義缺少模板參數列表。 出來應該是:
template <typename T>
T test<T>::out()
{
}
這行是錯誤的:
test<T>::test();
只需寫下:
test();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.