模板类不可以作为函数参数吗?
hnjl 2005-04-02 10:27:28 我写了一个小程序:
template<class type>
class Test
{
type i;
public:
void set(type ii)
{
i = ii;
}
};
void fun(Test<class type> test)
{
}
#include <iostream>
using namespace std;
int main()
{
Test<int> testa;
Test<char> testb;
testa.set(2);
testb.set('c');
fun(testa);
fun(testb);
return 0;
}
发现连编译都通不过(在Visual C++6.0下):
error C2079: 'i' uses undefined class 'type'
see reference to class template instantiation 'Test<class type>' being compiled
error C2664: 'fun' : cannot convert parameter 1 from 'class Test<int>' to 'class Test<class type>'
No constructor could take the source type, or constructor overload resolution was ambiguous
在C++中,没有实例化的模板类可以作为函数的参数吗?如果可以,应该怎么写?
顺便再问一下,大家C++都是用的什么编译器啊?什么编译器比较好啊?
谢谢!