64,646
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<ostream>
#include<istream>
using namespace std;
class A{
int n;
int k;
int m;
public:
A(){}
A(int n,int k,int m):n(n),k(k),m(m){}
A& operator++(){ //++i
m++;
return *this;
}
A operator++(int){ //i++ 或者直接将返回类型改成返回一个类也行
A a(*this);
m++;
return a;
}
friend ostream& operator<<(ostream & o,const A& a);
friend istream& operator>>(istream& i,A& a);
};
ostream& operator <<(ostream& o,const A& a){
o <<a.n <<"-" <<a.k <<"-" <<a.m <<endl;
return o;
}
int main(int argc, char *argv[])
{
A a(10,20,30);
cout <<++a; //10 20 31
cout <<a++; //10 20 31
a++;
cout <<a++; //10 20 33
system("pause");
return 0;
}
#include<iostream>
#include<ostream>
#include<istream>
using namespace std;
class A{
int n;
int k;
int m;
public:
A(){}
A(int n,int k,int m):n(n),k(k),m(m){}
A& operator++(){ //++i
m++;
return *this;
}
A operator++(int){ //i++
A b=A(*this); //改了一下这里,同时将返回值的类型改了下。
m++;
return b;
}
friend ostream& operator<<(ostream & o,const A& a);
friend istream& operator>>(istream& i,A& a);
};
ostream& operator <<(ostream& o,const A& a){
o <<a.n <<"-" <<a.k <<"-" <<a.m <<endl;
return o;
}
int main(int argc, char *argv[])
{
A a(10,20,30);
cout <<++a; //10 20 31
cout <<a++; //10 20 31
a++;
cout <<a++; //10 20 33
system("pause");
return 0;
}