C++ C++;多文件链表

C++ C++;多文件链表,c++,file,linked-list,C++,File,Linked List,我对使用多文件有点陌生。我有一个非常简单的链表代码,但当我调试时,它“停止工作” 这个问题以前在我身上发生过好几次。我想知道我的“链表”代码是否有问题?还是多文件组织有问题 任何帮助都将不胜感激 ====================================== //linkedListMAIN.cpp #include "linkedlist.cpp" void main() { linkList<int> l; l.append(5); l.traverse();

我对使用多文件有点陌生。我有一个非常简单的链表代码,但当我调试时,它“停止工作”

这个问题以前在我身上发生过好几次。我想知道我的“链表”代码是否有问题?还是多文件组织有问题

任何帮助都将不胜感激

======================================

//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++;  
 }
//linkedListMAIN.cpp
#包括“linkedlist.cpp”
void main()
{
链接列表l;
l、 追加(5);
l、 导线();
}
======================================

//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++;  
 }
//linkedList.h
#包括
使用名称空间std;
模板
类链接列表
{
私人:
结构节点
{
T数据;
节点*下一步;
};
节点*头;
节点*尾部;
国际努费尔;
公众:
链接列表()
{
努菲尔=0;
头=尾=空;
}
无效遍历();
int length();
无效插入符(T,int);
T delAt(int);
无效附加(T);
无效清除();
};
======================================

//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++;  
 }
//linkedList.cpp
#包括“linkedlist.h”
模板
无效链接列表::遍历()
{
节点*电流=头部;
if(head==NULL)
{

cout在inkedListMAIN.cpp中不应包含
.cpp
,而应包含头(
.h
)。此外,除非使用
c++11
,否则必须将模板类的类定义放在头中。

包含“linkedlist.h”在main中,
new
的编号为1,
delete
的编号为0。出现问题!这是一个学习练习吗?否则请使用std:list。请缩进代码以提高可读性。我在标题中有类定义。否。标题中有类声明。这对于模板化的常规类位来说已经足够了你也必须把定义放在那里。