执行期间模板程序崩溃
问题描述:
我在C++中使用模板实现双链表。正如我正在尝试模板一样。执行期间模板程序崩溃
template <class T>
class DList{
Node<T> *head;
Node<T> *tail;
public:
Dlist(){
head = tail = nullptr;
}
void addToHead(T el){
Node<T> *newNode = new Node<T>(el);
if(head == nullptr){
head = tail = newNode;
}
else{
head -> prev = newNode;
newNode -> next = head;
head = newNode;
}
} };
使用此addToHead()时,if条件未执行。程序崩溃。
答
他们错误的是构造函数,它只是一个错字。由于head
和tail
指针未初始化,并且在addToHead()的if条件中将head
指针与nullptr
进行比较,程序崩溃。
你应该做一些调试。 –
为什么这么多人在这里试图编写模板类和函数,当他们显然不能写非模板版本?这只是增加了复杂性,妨碍了学习C++。 –
你怎么知道,比较if没有执行? – 2017-11-25 17:20:28