楽しみと復習のために二重リンクリストを実装していて、メイン関数でそのインスタンスを宣言しようとすると、奇妙なリンカーエラーが発生します。
エラーは次のとおりです。
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall
d_list<int>::d_list<int>(void)" (??0?$d_list@H@@QAE@XZ) referenced in function _main
1>c:\users\ben\documents\visual studio 2010\Projects\dlist\Debug\dlist.exe : fatal
error LNK1120: 1 unresolved externals
main.cppは次のとおりです。
#include "d_list.h"
int main(){
d_list<int> test;
return 0;
}
構造自体は未完成ですが、必要な場合に備えてここにコードを貼り付けます。
ヘッダーファイル:
#ifndef D_LIST_H
#define D_LIST_H
template <class T>
class d_list{
public:
d_list();
d_list(const d_list &_dl);
void push_back(T item);
void push_front(T item);
void pop_back();
void pop_front();
private:
struct node{
node *prev;
node *next;
T data;
};
node *head;
node *tail;
int size;
};
#endif //D_LIST_H
d_list.cpp:
#include "d_list.h"
template <class T>
d_list<T>::d_list(){
}
template <class T>
d_list<T>::d_list(const d_list<T> &_dl){
}
template <class T>
void d_list<T>::push_back(T item){
node *new_tail = new node;
new_tail->data = item;
new_tail->next = head;
new_tail->prev = tail;
tail->next = new_tail;
size++;
}
template <class T>
void d_list<T>::push_front(T item){
node *new_head = new node;
new_head->data = item;
new_head->prev = tail;
new_head->next = head;
head->prev = new_head;
size++;
}
template <class T>
void d_list<T>::pop_back(){
node *temp = tail->prev;
temp->next = head;
delete tail;
tail = temp;
temp = NULL;
}
template <class T>
void d_list<T>::pop_front(){
}