C++-c++模板

发布于 2016-12-10 16:33:12 字数 1514 浏览 1156 评论 1

为何最后实例化出错

#include<iostream>
using namespace std;
template<typename T>
struct node{
T elem;
node *next;
};
template<typename T>
class list{
public:list();
~list();
node<T>* creat(T x);
bool isempt();
void Delete(T x);
void deletelist();
void insert(T x);
T find(T x);
private:
node<T> *Node;
};
template<typename T>
list<T>::list()
{
Node=NULL;
}
template<typename T>
list<T>::~list()
{
node<T> *p,*p2;
for(p=Node;p!=NULL;p=p2)
{
p2=p->next;
delete p;
}
}
template<typename T>
bool list<T>::isempt()
{
return Node->next==NULL;
}
template<typename T>
node<T>* list<T>::creat(T x)
{
node<T> *head=Node new[sizeof(Node)];
node<T> * p,*q=head;
q->next=NULL;
for(int i=0;i<x;i++)
{
p=Node new[sizeof(Node)];
if(p==NULL)
cout<<"error"<<__line__<<"n";
p->elem=i;
q->next=p;
q=p;
}
q->next=NULL;
return head;
}
int main()
{
node<int> *p;
list<int> ls;
p=ls.creat(5);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归属感 2016-12-17 17:01:19

你的代码尽是语法问题,已经修改好了,主要是标注的那些地方

#include<iostream>
using namespace std;
template<typename T>
struct node{
T elem;
node *next;
};
template<typename T>
class list{
public:list();
~list();
node<T>* creat(T x);
bool isempt();
void Delete(T x);
void deletelist();
void insert(T x);
T find(T x);
private:
node<T> *Node;
};
template<typename T>
list<T>::list()
{
Node = NULL;
}
template<typename T>
list<T>::~list()
{
node<T> *p,*p2;
for(p = Node;p != NULL;p = p2)
{
p2 = p->next;
delete p;
}
}
template<typename T>
bool list<T>::isempt()
{
return Node->next == NULL;
}
template<typename T>
node<T>* list<T>::creat(T x)
{
node<T> *head = new node<T>; // 这里
node<T> * p = head; // 这里
node<T> *q = head; // 这里
q->next = NULL;
for(int i=0;i<x;i++)
{
p = new node<T>; // 这里
if(p == NULL)
cout << "error" << endl;
p->elem = i;
q->next = p;
q = p;
}
q->next = NULL;
return head;
}
int main()
{
node<int> *p;
list<int> ls;
p = ls.creat(5);
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文