#ifndef SEQQUEUE_H
#define SEQQUEUE_H
#include "Queue.h" //抽象基類
#include <assert.h>
#include <iostream>
using namespace std;
template<class T>
class SeqQueue : public Queue<T>
{
public:
SeqQueue(int sz = 10);
~SeqQueue();
bool EnQueue(const T& x); //若佇列不滿,則將x進佇列,否則佇列溢位處理
bool DeQueue(T& x); //若佇列不空,則退出隊頭元素由x回傳
bool getFront(T& x); //若佇列不空,則回傳對頭元素的值
void makeEmpty(); //置空操作
bool IsEmpty()const; //判斷佇列空否,慷訓傳true
bool IsFull()const; //判斷佇列滿否,滿回傳true
int getSize()const;
friend ostream& operator << (ostream& os,SeqQueue<T>& Q); //多載輸出運算子
T getData(int i)const
{
return elements[i];
}
protected:
T * elements;
int rear,front;
int maxSize;
};
template<class T>
ostream& operator<< (ostream& os,SeqQueue<T>& Q)
{
os<< "front = "<<Q.front<<",rear = "<<Q.rear<<endl;
for(int i = Q.front; i != Q.rear;i = (i+1)%Q.maxSize)
{
os<<i<<":"<<Q.elements[i]<<endl;
}
}
#endif
//K_Fib.h
void K_Fib(int k,int max)
{
SeqQueue<int> s;
s.EnQueue(0);
s.EnQueue(1);
cout << s;
}
//test.cpp
#include <iostream>
using namespace std;
#include "SeqQueue.h"
#include "K_Fib.h"
int main()
{
int K;
int max;
cout<<"求K階斐波那契序列"<<endl;
cout<<"請輸入K值:";
cin>>K;
cout<<"請輸入max值:";
cin>>max;
cout<<"最大項小于或等于"<<max<<"的"<<K<<"階斐波那契序列:";
K_Fib(K,max);
cout<<endl;
return 0;
}
鏈接出錯了,說這個多載輸出流函式在K_Fib()中被參考,但是不知道為什么?
uj5u.com熱心網友回復:
#ifndef .....
#define....
void K_Fib(int k,int max)
{
SeqQueue<int> s;
s.EnQueue(0);
s.EnQueue(1);
cout << s;
}
#endif
uj5u.com熱心網友回復:
還是不行
uj5u.com熱心網友回復:

修好了修好了,我查了微軟的官方檔案,修好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/131834.html
標籤:C++ 語言
