我現在使用template來寫一個Queue
可是才開始寫push時,來做測試時,就會出現Linker error
請各位前輩幫我看看..謝謝
Unit1.cpp
//---------------------------------------------------------------------------
#include
#pragma hdrstop #include "Unit1.h"
#include "MyQueue.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Queue〈int〉 Q;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PushClick(TObject *Sender)
{
int x;
x = StrToInt(Edit->Text);
Q.Push(x);
}
//--------------------------------------------------------------------------- MyQueue.cpp
//---------------------------------------------------------------------------
#include "Unit1.h"
#include "MyQueue.h" template
Queue::Queue(int MaxQueueSize):MaxSize(MaxQueueSize)
{
array = new int[MaxQueueSize];
top = -1;
}
//---------------------------------------------------------------------------
template
Queue::~Queue()
{
delete [] array;
}
//---------------------------------------------------------------------------
template
void Queue::Push(const QueueType& x)
{
array[++top] = x;
} MyQueue.h
//---------------------------------------------------------------------------
#ifndef MYQUEUEH
#define MYQUEUEH
#define Queue_Max_Num 4 template〈class QueueType〉
class Queue
{
private:
int *array;
int top;
int x;
public:
Queue(int MaxQueueSize = Queue_Max_Num);
~Queue();
void Push(const QueueType& item);
};
#endif
會出現下面的Error
[Linker Error] Unresolved external 'Queue
::Queue(int)' referenced from D:\測試程式\複製 -QUEUE\UNIT1.OBJ
[Linker Error] Unresolved external 'Queue::~Queue()' referenced from D:\測試程式\複製 -QUEUE\UNIT1.OBJ
[Linker Error] Unresolved external 'Queue::Push(const int&)' referenced from D:\測試程式\複製 -QUEUE\UNIT1.OBJ