首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

种模板编译不能通过

2013-07-08 
类模板编译不能通过请帮忙指出一下错误如何修改,谢谢。错误内容:dlist.cpp(60) : error C2664: Add : can

类模板编译不能通过
请帮忙指出一下错误如何修改,谢谢。
错误内容:


dlist.cpp(60) : error C2664: 'Add' : cannot convert parameter 1 from 'const int' to 'int &'
        A reference that is not to 'const' cannot be bound to a non-lvalue

代码如下:

#include<iostream>
using namespace std;
template<typename T>
struct Node{
Node(T d):c(d),next(0),prev(0){};
T c;
Node *next,*prev;
};
template<typename T>
class List{
Node<T> *first,*last;
public:
List();
void Add(T& c);
void Remove(T& c);
Node<T>* Find(T& c);
void Print();
~List();
};
//template<typename T>
//struct Node<T& d>:c(d),next(0),prev(0){};


template<typename T>
List<T>::List():first(0),last(0){}
template<typename T>
void List<T>::Add(T& n)
{
Node<T>* p=new Node<T>(n);
if(first == last)
{
p->prev = first;
p->next = NULL;
last = p;
}
else
{
p->prev = last;
p->next = NULL;
last = p;
}

}
template<typename T>
void List<T>::Print()
{
if(this->first !=NULL)
{
Node<T> *p=this->first;
while(p->next != NULL)
{
cout<<p.c<<endl;
p=p->next;
}
}
}
int main()
{
List<int> dlist;
dlist.Add(4);
dlist.Add(5);
dlist.Print();
return 0;
}

类模板
[解决办法]
析构函数未定义。

加上析构函数的定义:

template<typename T>
List<T>::~List()
{
}

热点排行