Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350433
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:01:31

#include

template class list;

template
class listnode
{
friend class list;
public:
listnode(T);
listnode(){info=0;next=0;}
private:
listnode *next;
T info;
};

template
listnode::listnode(T inf)
{
info=inf; next=0;
}


template
class list
{
private:
listnode* head;
listnode* tail;
public:
list();
~list();
void insertatfront(T&);
void insertatback(T&);
void deletefromfront(T&);
void deletefromback(T&);
};



template
list::list(){ tail=0;head->next=tail;}


template
void list::insertatfront(T &info)
{
listnode* temp=new listnode(info);
temp->next=head->next;
head->next=temp;
}



template
void list::insertatback(T &info)
{
listnode *tempt=new listnode(info);
tail->next=tempt;
tail=tempt;
}

template
list::~list()
{
listnode* tempt=head->next;
listnode* current=0;
cout<<" destroying......."< while(tempt!=0)
{    
current=tempt;
cout<info<<" ";
   delete current;
   tempt=tempt->next;
}
}



int main()
{
list list1; int a;
    for(int i=0;i<5;i++)
list1.insertatfront(i);
return 0;
}

错误提示:Configuration: list - Win32 Debug--------------------
Compiling...
list.cpp
G:\list.cpp(82) : warning C4101: 'a' : unreferenced local variable
G:\list.cpp(48) : error C2955: 'listnode' : use of class template requires template argument list
        G:\list.cpp(15) : see declaration of 'listnode'
        G:\list.cpp(88) : while compiling class-template member function 'void __thiscall list::insertatfront(int &)'
G:\list.cpp(48) : error C2955: 'listnode' : use of class template requires template argument list
        G:\list.cpp(15) : see declaration of 'listnode'
        G:\list.cpp(88) : while compiling class-template member function 'void __thiscall list::insertatfront(int &)'
G:\list.cpp(48) : error C2514: 'listnode' : class has no constructors
        G:\list.cpp(15) : see declaration of 'listnode'
        G:\list.cpp(88) : while compiling class-template member function 'void __thiscall list::insertatfront(int &)'
Error executing cl.exe.

list.obj - 3 error(s), 1 warning(s)
小弟我弄了将近3小时就是不知道哪里出了问题,希望高手指点一二,在下感激不尽!

--------------------next---------------------
#include
using namespace std;

template class list;

template
class listnode
{
friend class list;
public:
listnode(T);
listnode(){info=0;next=0;}
private:
listnode *next;
T info;
};

template
listnode::listnode(T inf)
{
info=inf; next=0;
}


template
class list
{
private:
listnode* head;
listnode* tail;
public:
list();
~list();
void insertatfront(T&);
void insertatback(T&);
void deletefromfront(T&);
void deletefromback(T&);
};



template
list::list(){ tail=NULL;head = NULL;}


template
void list::insertatfront(T &info)
{
listnode* temp=new listnode(info);
if( NULL == head)
{
head = temp;
head->next = NULL;
}
else
{
temp->next=head;
head=temp;
}
}



template
void list::insertatback(T &info)
{
listnode *tempt=new listnode(info);
tail->next=tempt;
tail=tempt;
}

template
list::~list()
{
listnode* tempt=head;
listnode* current=0;
cout<<"destroying......."<while(tempt != NULL)
{    
current=tempt;
cout<info<<" "<tempt=tempt->next;
delete current;
}
}



int main()
{
list list1; int a;
    for(int i=0;i<5;i++)
list1.insertatfront(i);
return 0;
}


--------------------next---------------------

阅读(1684) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~