模板类不可以作为函数参数吗?

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++都是用的什么编译器啊?什么编译器比较好啊?
谢谢!
...全文
235 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lw1a2 2005-04-02
  • 打赏
  • 举报
回复
template<class type>
void fun(Test<type> test)
{
}
富莱工作室 2005-04-02
  • 打赏
  • 举报
回复
这样
template<class type>
class Test
{
type i;
public:
void set(type ii)
{
i = ii;
}
};

template<class type>
void fun(Test< 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;
}

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧