所以我有一個動態的隊列,我試圖爲它重載>>運算符。但我輸入的號碼是錯誤的。任何猜測我做錯了什麼? (< <運營商工作得很好,但)。 所以我的課是:如何正確設置數組項目的istream&operator >>?
class queue
{
int queue1[100];
int rear1,front1, num1;
public:
queue(): rear1(-1),front1(-1){};
queue(int , int , int);
void insert1(int);
void delet1();
friend istream& operator>>(istream& in, queue& obj);
friend ostream& operator<<(ostream& out, const queue& obj);
void queue::printOn(ostream &out) const;
};
和功能操作本身:
istream& operator>>(istream& in, queue& obj){
in >> obj.queue1[obj.rear1++];
cout <<"inserted: " << obj.queue1[obj.rear1];
return(in);
}
和我的主要funtion是:
queue qu1;
cout<<"Entered number:";
cin>>qu1;
cout << qu1;
這檔節目是如何工作的:
已輸入號碼:5
但
插入:-858993460
插入:-858993460
由於您已完成'rear1 ++',因此您正在最後一個元素之後打印對象。你應該使用'cout <<「插入:」<< obj.queue1 [obj.rear1-1];' – Franck
10爲什麼你在(已經很長的)問題標題中喊出「正確」?這是什麼添加? –
是的,這有幫助,它打印出我輸入的號碼。但是,當我嘗試打印隊列如下: 'cout << qu1;' 它仍然打印出-858993460號碼。 – yTpo