队列.h
#include<iostream>
using namespace std;
template <class t>
class queue {
public:
queue(int=10);
void push(t&);
void pop();
bool empty();
private:
int maxqueue;
int emptyqueue;
int top;
t* item;
};
队列.cpp
#include<iostream>
#include"queue.h"
using namespace std;
template <class t>
queue<t>::queue(int a){
maxqueue=a>0?a:10;
emptyqueue=-1;
item=new t[a];
top=0;
}
template <class t>
void queue<t>::push(t °er){
if(empty()){
item[top]=deger;
top++;
}
else
cout<<"queue is full";
}
template<class t>
void queue<t>::pop(){
for(int i=0;i<maxqueue-1;i++){
item[i]=item[i+1];
}
top--;
if(top=emptyqueue)
cout<<"queue is empty";
}
template<class t>
bool queue<t>::empty(){
if((top+1)==maxqueue)
return false
else
return true
}
主文件
#include<iostream>
#include<conio.h>
#include"queue.h"
using namespace std;
void main(){
queue<int>intqueue(5);
int x=4;
intqueue.push(x);
getch();
}
我已经使用模板创建了队列。编译器给出了这个错误。我无法解决这个问题。
1>main.obj:错误 LNK2019:未解析的外部符号“public:void __thiscall queue::push(int)”(?push@?$queue@H@@QAEXH@Z) 在函数 _main 1>main.obj 中引用:错误 LNK2019:函数 _main 1>c:\users\pc\documents\ 中引用的未解析外部符号“public: __thiscall queue::queue(int)”(??0?$queue@H@@QAE@H@Z) visual studio 2010\Projects\lab10\Debug\lab10.exe : 致命错误 LNK1120: 2 unresolved externals
编辑:这里给出了解决方案。