64,649
社区成员
发帖
与我相关
我的任务
分享
//我有一个c++ 疑问 希望高手能来解答
#include<iostream>
#include<string>
#include<stdlib.h>
template<class T>
class Node
{
public:T data;
Node(const T&item,Node<T>*ptrnext=NULL);
private:Node<T>*next;
};
template<class T>
Node<T>::Node(const T&item,Node<T>*ptrnext):data(item),next(ptrnext){}
//单链表的操作
template<class T>
Node<T>*GetNode(const T&item,Node<T>*nextptr=NULL)
{Node<T>*newnode=new Node<T>(item,nextptr);
if(newnode==NULL)
{std::cerr<<"创建结点失败"<<std::endl;
exit(1);}
return newnode;}
int main()
{
Node<int>*head=0;
GetNode(1); //这个是正确的
GetNode(1,head); //这个是错误的
//head 类型是Node<int>* , 再用&类型错误
GetNode<int>(1,NULL); //这个也是错误的 ?
//你没有指明T的类型,这样就好了
return 0;
}