问一个模版的问题,求指导

zilaishuichina 2012-12-13 10:26:20

template <class T>
struct CLinkerT
{
T *pValue;
CLinkerT *pNext;//此处不写成CLinkerT<T>没有问题,编译通过
};
template <class T>
class CTemplate
{
CLinkerT *m_pNode;//此处不写成CLinkerT<T>没有问题,编译通过
CLinkerT *GetNode();//此处不写成CLinkerT<T>没有问题,编译通过
};

//为什么此处函数的返回值写成CLinkerT时编译不通过
//“use of class template requires template argument list”
template <class T>
CLinkerT<T> *CTemplate<T>::GetNode()
{
return m_pNode;
}


这个<T>具体起到一个什么作用?
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yisikaipu 2012-12-13
  • 打赏
  • 举报
回复
template <class T> struct CLinkerT { T *pValue; CLinkerT *pNext;//此处不写成CLinkerT<T>没有问题,编译通过 }; 这里可以不写的
yisikaipu 2012-12-13
  • 打赏
  • 举报
回复
引用 2 楼 zilaishuichina 的回复:
那为什么CLinkerT *GetNode();函数申明的时候不需要指定模板参数
VS吧? 按ISO标准都要写的,只是编译器做了扩展,但有些地方似乎又没扩展 还是按标准都写上吧
zilaishuichina 2012-12-13
  • 打赏
  • 举报
回复
引用 1 楼 guangmingshizhe 的回复:
返回的类型是一个需要模板参数的模板结构体 需要指定模板参数
那为什么CLinkerT *GetNode();函数申明的时候不需要指定模板参数
妍妍 2012-12-13
  • 打赏
  • 举报
回复
返回的类型是一个需要模板参数的模板结构体 需要指定模板参数
prajna 2012-12-13
  • 打赏
  • 举报
回复
都写上,好看点。
引用 3 楼 yisikaipu 的回复:
引用 2 楼 zilaishuichina 的回复: 那为什么CLinkerT *GetNode();函数申明的时候不需要指定模板参数 VS吧? 按ISO标准都要写的,只是编译器做了扩展,但有些地方似乎又没扩展 还是按标准都写上吧
++

64,282

社区成员

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

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