STL容器中放模板类型应该怎么写?

yuanyingtanxi 2010-08-16 10:53:31
#include <set>

class CMyTest:

{
public :
CMyTest();
~CMyTest();
protected:
template <typename T>
std::set<T> m_data;
}


编译器报错
Error 1 fatal error C1001: An internal error has occurred in the compiler
该如何实现
...全文
66 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanyingtanxi 2010-08-16
  • 打赏
  • 举报
回复
看来我的想法是不现实的,换个别的思路吧,谢谢大家了
pengzhixi 2010-08-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuanyingtanxi 的回复:]
这样错误更多
Error 1 error C2955: 'CMyTest' : use of class template requires template argument list e:\test\MyTest.cpp 12
Error 2 error C2955: 'CMyTest' : use of class template requires template argument ……
[/Quote]

将CPP里面的东西放到 头文件里面来,模板很少有分离编译
hai040 2010-08-16
  • 打赏
  • 举报
回复
确定模板类型是编译时做的
yuanyingtanxi 2010-08-16
  • 打赏
  • 举报
回复
很重要的一点就是我在这个类实例化的时候,不知道T是什么,在实例化以后,比如有个init函数,读取一些东西后才能知道T是什么类型,这样可以实现么
yuanyingtanxi 2010-08-16
  • 打赏
  • 举报
回复
呵呵,手里没有书呀
我想这么简单的东西,就是语法不通,问问就知道了
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuanyingtanxi 的回复:]

这样错误更多
Error 1 error C2955: 'CMyTest' : use of class template requires template argument list e:\test\MyTest.cpp 12
Error 2 error C2955: 'CMyTest' : use of class template requires template argument……
[/Quote]
还是找本书看看模板相关的东西 比较快。
yuanyingtanxi 2010-08-16
  • 打赏
  • 举报
回复
这样错误更多
Error 1 error C2955: 'CMyTest' : use of class template requires template argument list e:\test\MyTest.cpp 12
Error 2 error C2955: 'CMyTest' : use of class template requires template argument list e:\test\MyTest.cpp 12
Error 3 error C2509: '{ctor}' : member function not declared in 'CMyTest' e:\test\MyTest.cpp 12
Error 4 error C2955: 'CMyTest' : use of class template requires template argument list e:\test\MyTest.cpp 16
Error 5 error C2509: '{dtor}' : member function not declared in 'CMyTest' e:\test\MyTest.cpp 17
Error 6 error C2955: 'CMyTest' : use of class template requires template argument list e:\test\MyTest.cpp 19
……


CPP文件里该怎么写呢
pengzhixi 2010-08-16
  • 打赏
  • 举报
回复
template<typename T>
class CMyTest:

{
public :
CMyTest();
~CMyTest();
protected:
std::set<T> m_data;
}
  • 打赏
  • 举报
回复
template <typename T>
class CMyTest:
{
public :
CMyTest();
~CMyTest();
protected:

std::set<T> m_data;
}

64,654

社区成员

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

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