请大佬们解释一下以下两段代码的运行结果,主要是++p的结果不明白:
1.
#include<iostream>
using namespace std;
class My
{
friend ostream& operator<<(ostream& cout, My& p);
friend My& operator++(My p);
public:
My()
{
x = 0;
}
private:
int x;
};
ostream& operator<<(ostream& cout, My &p)
{
cout <<p.x;
return cout;
}
My &operator++(My p)//前置++
{
p.x += 1;
return p;
}
int main()
{
My p;
cout <<++p<<endl;
cout << p;
}
2.
#include<iostream>
using namespace std;
class My
{
friend ostream& operator<<(ostream& cout, My p);
friend My& operator++(My p);
public:
My()
{
x = 0;
}
private:
int x;
};
ostream& operator<<(ostream& cout, My p)
{
cout <<p.x;
return cout;
}
My &operator++(My p)//前置++
{
p.x += 1;
return p;
}
int main()
{
My p;
cout <<++p<<endl;
cout << p;
}
谢谢大佬们了!!!!!