无法解析的外部符号 "class std::basic_ostream .........在线等!
#ifndef QUEUE6_H
#define QUEUE6_H
#include<iostream>
using std::cerr;
using std::cout;
using std::ostream;
#include <cstdlib>
using std::exit;
// QueueItem is now a nested type of the template Queue
template <class Type>
class Queue {
public:
Queue() : front( 0 ), back ( 0 ) { }
~Queue();
Type remove();
void add( const Type & );
bool is_empty() const {
return front == 0;
}
friend ostream& operator<<( ostream &, const Queue<Type> & );
private:
class QueueItem {
QueueItem( const Type &t )
: item(t), next(0) { }
friend class Queue<Type>;
friend ostream& operator<<( ostream &, const QueueItem & );
Type item;
QueueItem *next;
void *operator new( size_t );
void operator delete( void *, size_t );
static QueueItem *free_list;
static const unsigned QueueItem_chunk;
};
QueueItem *front;
QueueItem *back;
};
#endif
----------------Queue6.cpp---------------
template <class Type>
ostream& operator<<( ostream &os, const Queue<Type> &q )
{
os << "< ";
QueueItem<Type> *p;
for ( p = q.front; p; p = p->next )
os << *p << " ";
os << " >";
return os;
}
template <class Type>
ostream& operator<<( ostream &os, const typename Queue<Type>::QueueItem &qi )
{
os << qi.item;
return os;
}
#include<iostream>
#include "Queue6.h"
#include "Queue6.cpp"
using std::cout;
using std::endl;
int main() {
Queue<int> qi;
cout << qi << endl;
int ival;
for ( ival = 0; ival < 10; ++ival )
qi.add( ival );
cout << qi << endl;
int err_cnt = 0;
for ( ival = 0; ival < 10; ++ival ) {
int qval = qi.remove();
if ( ival != qval ) err_cnt++;
}
cout << qi << endl;
if ( !err_cnt )
cout << "!! queue executed ok\n";
else cout << "?? queue errors: " << err_cnt << endl;
return 0;
}
error:
Main.obj : error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Queue<int> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$Queue@H@@@Z),该符号在函数 _main 中被引用
D:\MyProgamingCode\My-VS08\P16-T\Debug\P16-T.exe : fatal error LNK1120: 1 个无法解析的外部命令
怎么解决???