多載自減運算子
我的代碼如下,查csdn上說這個錯誤好像是輸入輸出流寫錯了,我檢查了一下確實是輸出流ostream,單寫多載左移運算子結果正確,前置自減也正確,懷疑錯誤出在后置自減運算子里面,但是檢查了半天找不到錯誤,求大神幫助
#include<iostream>
using namespace std;
class Myint
{private:
int num;
public:
friend ostream& operator<<(ostream& cout,Myint &MI1);
Myint()
{num=10;}
//多載自減運算子
Myint& operator --() //前置自減運算子
{--num;
return *this;}
Myint operator --(int) //后置自減運算子(括號里面加int以便區分前后置)
{Myint temp=*this;
--num;
return temp; }
};
//多載左移運算子
ostream& operator<<(ostream &cout,Myint &MI1)
{cout<<MI1.num;
return cout;}
int main()
{Myint MI1;
cout<<MI1<<endl;
cout<<--MI1<<endl;
cout<<MI1--<<endl;
return 0;
}

uj5u.com熱心網友回復:
要加const, const 參考才能接收右值、臨時量ostream& operator<<(ostream &cout, const Myint &MI1)
MI1-- 回傳的是右值
uj5u.com熱心網友回復:
friend ostream& operator<<(ostream& out, const Myint &MI1);uj5u.com熱心網友回復:
明白了,修改了一下已經編譯成功了,謝謝大佬
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110097.html
標籤:C++ 語言
上一篇:演算法測驗題求助
下一篇:向大佬求助
