问一个模版的有关问题,求指导
问一个模版的问题,求指导template class Tstruct CLinkerT{T *pValueCLinkerT *pNext//此处不写成CLin
问一个模版的问题,求指导
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>具体起到一个什么作用?
[解决办法]返回的类型是一个需要模板参数的模板结构体
需要指定模板参数
[解决办法]VS吧?
按ISO标准都要写的,只是编译器做了扩展,但有些地方似乎又没扩展
还是按标准都写上吧
[解决办法]template <class T>
struct CLinkerT
{
T *pValue;
CLinkerT *pNext;//此处不写成CLinkerT<T>没有问题,编译通过
};
这里可以不写的
[解决办法]都写上,好看点。
++