C++ 关于C++;模板
我使用了一个简单的类作为关于模板的测试程序,这就是我所做的:C++ 关于C++;模板,c++,templates,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; } 模板
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;
}
模板
课堂测试
{
公众:
test::test();
T out();
};
模板
test::test()
{
}
T测试::out()
{
}
int main()
{
//试验t;
}
但是当我试图编译它时,它说'T':未声明的标识符和使用类模板需要模板参数列表,指向同一行,我在那里实现了方法out()。有人能解释一下问题出在哪里吗??我正在使用visual studio 2008。您对out成员的定义缺少模板参数列表。其内容应为:-
template <typename T>
T test<T>::out()
{
}
模板
T测试::out()
{
}
您对out成员的定义缺少模板参数列表。其内容应为:-
template <typename T>
T test<T>::out()
{
}
模板
T测试::out()
{
}
这一行是错误的:
test<T>::test();
这一行是错误的:
test<T>::test();
以下更为准确:
template <typename T>
class test
{
public:
test();
T out();
};
template <typename T>
test<T>::test()
{
}
template <typename T>
T test<T>::out()
{
}
模板
课堂测试
{
公众:
test();
T out();
};
模板
test::test()
{
}
模板
T测试::out()
{
}
1) 不要在类内使用
2) 不要忘记在每个方法声明出类体之前声明模板
,以下更准确:
template <typename T>
class test
{
public:
test();
T out();
};
template <typename T>
test<T>::test()
{
}
template <typename T>
T test<T>::out()
{
}
模板
课堂测试
{
公众:
test();
T out();
};
模板
test::test()
{
}
模板
T测试::out()
{
}
1) 不要在类内使用
2) 不要忘记在每个方法声明出类体之前声明模板
,OP没有缩进代码,因此
被视为未知HTML元素并被忽略。哎哟-很好,尽管我认为答案仍然正确-我只是得到了错误的缺少参数列表。@Marcelo Cantos-更改。感谢您的反馈OP没有缩进代码,因此
被视为未知的HTML元素并被忽略。哎哟-很好,尽管我认为答案仍然正确-我只是得到了错误的缺少参数列表。@Marcelo Cantos-更改。谢谢你的反馈,这是错误的;这将只是定义一个新的自由函数,而不是类方法。我想我应该更清楚。我指的是类中的声明,而不是后面的定义。(分号应该表示出来)哦,我没看到-(-1):)这是错误的;这将只是定义一个新的自由函数,而不是类方法。我想我应该更清楚。我指的是类中的声明,而不是后面的定义。(分号应该表示出来)哦,我没看到-(-1) :)