[/code]
# include<iostream>
using namespace std;
class person
{
friend void test01();
friend void test02();
friend ostream& operator<<(ostream& cout, person p);
friend person& operator--(person& p);
friend person operator--(person& p,int);
private:
int m_age;
public:
person()
{
m_age = 0;
}
person(int a)
{
m_age = a;
}
};
//多載<<運算子
ostream& operator<<(ostream& cout, person p)
{
cout << p.m_age ;
return cout;
}
//多載前置遞減
person& operator--(person&p)
{
--p.m_age;
return p;
}
//多載后置遞減
person operator--(person& p, int)
{
person temp =p.m_age ;
p.m_age--;
return temp;
}
void test01()
{
person p;
cout << --p << endl;
cout << p << endl;
}
void test02()
{
person p;
cout << p-- << endl;
cout << p << endl;
}
int main()
{
test01();
test02();
system("pause");
return 0;
}
為什么左移運算子多載 ostream& operator<<(ostream& cout, person p)
形參 person p 我用參考的話 person&p,下面前置遞減cout << --p << endl可以直接這樣輸出,而后置遞減cout << p-- << endl;直接這樣輸出會報錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239352.html
標籤:新手樂園
上一篇:C語言程式:學生成績管理系統
下一篇:用指標修改陣列某一列
