我使用了一个关于模板的测试程序的简单类,这就是我所做的:
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。
答案 0 :(得分:5)
以下更准确:
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>
答案 1 :(得分:0)
您对out成员的定义缺少模板参数列表。应该读: -
template <typename T>
T test<T>::out()
{
}
答案 2 :(得分:0)
这一行错了:
test<T>::test();
请写下:
test();