gpt4 book ai didi

c++ - 对 `LinkedList::push_front(int) 的 undefined reference

转载 作者:搜寻专家 更新时间:2023-10-31 00:41:25 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why do I get “unresolved external symbol” errors when using templates?

链表.h

#ifndef LINKEDLIST_H
#define LINKEDLIST_H
#include<iostream>

template<class T> class LinkedList;

//------Node------
template<class T>
class Node {
private:
T data;
Node<T>* next;
public:
Node(){data = 0; next=0;}
Node(T data);
friend class LinkedList<T>;

};


//------Iterator------
template<class T>
class Iterator {
private:
Node<T> *current;
public:

friend class LinkedList<T>;
Iterator operator*();
};

//------LinkedList------
template<class T>
class LinkedList {
private:
Node<T> *head;


public:
LinkedList(){head=0;}
void push_front(T data);
void push_back(const T& data);

Iterator<T> begin();
Iterator<T> end();

};



#endif /* LINKEDLIST_H */

链表.cpp

#include "LinkedList.h"
#include<iostream>


using namespace std;

//------Node------
template<class T>
Node<T>::Node(T data){
this.data = data;
}


//------LinkedList------
template<class T>
void LinkedList<T>::push_front(T data){

Node<T> *newNode = new Node<T>(data);

if(head==0){
head = newNode;
}
else{
newNode->next = head;
head = newNode;
}
}

template<class T>
void LinkedList<T>::push_back(const T& data){
Node<T> *newNode = new Node<T>(data);

if(head==0)
head = newNode;
else{
head->next = newNode;
}
}


//------Iterator------
template<class T>
Iterator<T> LinkedList<T>::begin(){
return head;
}

template<class T>
Iterator<T> Iterator<T>::operator*(){

}

主要.cpp

#include "LinkedList.h"

using namespace std;


int main() {
LinkedList<int> list;

int input = 10;

list.push_front(input);
}

您好,我是 C++ 的新手,我正在尝试使用模板编写自己的 LinkedList。

我非常仔细地阅读了我的书,这就是我得到的。不过我收到了这个错误。

/main.cpp:18: undefined reference to `LinkedList::push_front(int)'

我不知道为什么,有什么想法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com