无法解析的外部符号 "class std::basic_ostream .........在线等!

dazhuaye dazhuaye 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#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 个无法解析的外部命令

怎么解决???
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
dazhuaye
C++ 语言 65,214 成员 250,514 内容