我对使用多文件有点陌生。我有这个非常简单的链表代码,但是当我调试时,它"停止工作"。
这个问题在我身上已经发生过好几次了。我想知道我的"链表"代码是否有问题?还是多文件组织有问题?
任何帮助都将是非常感激的。
======================================
//linkedListMAIN.cpp
#include "linkedlist.cpp"
void main()
{
linkList<int> l;
l.append(5);
l.traverse();
}
======================================
//linkedList.h
#include<iostream>
using namespace std;
template <class T>
class linkList
{
private:
struct node
{
T data;
node *next;
};
node *head;
node *tail;
int noOfEl;
public:
linkList()
{
noOfEl = 0;
head=tail=NULL;
}
void traverse();
int length();
void insertAt(T, int);
T delAt(int);
void append(T);
void clear();
};
======================================
//linkedList.cpp
#include "linkedlist.h"
template <class T>
void linkList<T>:: traverse()
{
node<T> *current=head;
if(head == NULL)
{
cout<<"List empty."<<endl;
}
while(current != NULL)
{
cout<<current->data;
current = current->next;
}
}
template <class T>
void linkList<T>::append(T data)
{
node< *newNode= new node;
newNode->next = NULL;
tail->next = newNode;
tail = newNode;
noOfEl++;
}
你不应该在inkedListMAIN.cpp中包含.cpp
,而应该包含头(.h
)。此外,除非您使用c++11
,否则您必须将模板类的类定义放在头文件中。