输出的意外结果
#include<iostream>using namespace std;
class a
{
public:
a();
a(int);
a(const a&);
~a(){}
void SetRadius(int);
int GetRadius()const{return *itsRadius;}
const a&operator++();
const a operator++(int);
a&operator=(const a&);
private:
int *itsRadius;
};
a::a()
{
itsRadius=new int(6);
}
a::a(int radius)
{
itsRadius=new int(radius);
}
a::a(const a&rsh)
{
int val=rsh.GetRadius();
itsRadius=new int(val);
}
a & a::operator =(const a&rsh)
{
if(this==&rsh)
return *this;
*itsRadius=rsh.GetRadius();
return *this;
}
const a &a::operator ++()
{
++(itsRadius);
return *this;
}
const a a::operator ++(int)
{
a temp(*this);
++(itsRadius);
return temp;
}
int main()
{
a one,two(8);
one++;
++two;
cout<<"one"<<one.GetRadius()<<endl;
cout<<"two"<<two.GetRadius()<<endl;
one=two;
cout<<"one"<<one.GetRadius()<<endl;
cout<<"two"<<two.GetRadius()<<endl;
return 0;
}