问题关于C++模板
问题描述:
我用一个简单的类有关模板的测试程序,这是我做的:问题关于C++模板
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.
答
您对out成员的定义缺少模板参数列表。出应改为: -
template <typename T>
T test<T>::out()
{
}
答
以下是更准确:
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>
在主体外部
OP没有缩进代码,所以''被视为未知的HTML元素并被忽略。 –
2010-05-02 05:49:36
哎呀 - 好点,虽然我认为答案仍然正确 - 我刚刚得到了错误的缺少参数列表。 – Stewart 2010-05-02 05:55:00
@Marcelo坎多斯 - 改变。感谢您的反馈 – Stewart 2010-05-02 05:57:29