[英]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.