#include <iostream>
using namespace std;
class SimpleCircle
{
public:
SimpleCircle();
SimpleCircle(int);
SimpleCircle(SimpleCircle & rhs);// <= Конструктор копирования
~SimpleCircle();
SimpleCircle operator++();
SimpleCircle operator++(int);
void SetRadius(int);
int GetRadius();
void Hello()const{ cout<<"Hello! I am const\n"; }
void Hello(){ cout<<"Hello! I am not const\n"; }
private:
int *itsRadius;
};
SimpleCircle :: SimpleCircle(){itsRadius=new int;*itsRadius=5;}
SimpleCircle :: SimpleCircle(int input){itsRadius=new int;*itsRadius=input;}
SimpleCircle :: SimpleCircle(SimpleCircle & rhs){int val=rhs.GetRadius(); itsRadius=new int(val);}
SimpleCircle :: ~SimpleCircle(){}
SimpleCircle SimpleCircle :: operator++(){ ++(*itsRadius); return *this;}
void SimpleCircle :: SetRadius(int input){itsRadius=new int;*itsRadius=input;}
int SimpleCircle :: GetRadius(){return *itsRadius;}
SimpleCircle SimpleCircle :: operator++(int)
{
SimpleCircle temp(*this);
++(*itsRadius);
return temp;
}
int main()
{
SimpleCircle a(10), b(20);
(b++).Hello();
// ++a;++b;
// a++;b++;
a=b++;//<= Здесь ошибка
// a=++b;//<= и здесь.
// cout << a.GetRadius() << " " << b.GetRadius() << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgU2ltcGxlQ2lyY2xlICAgICAgICAgICAKewpwdWJsaWM6CiAgICBTaW1wbGVDaXJjbGUoKTsKICAgIFNpbXBsZUNpcmNsZShpbnQpOwoKICAgIFNpbXBsZUNpcmNsZShTaW1wbGVDaXJjbGUgJiByaHMpOy8vIDw9INCa0L7QvdGB0YLRgNGD0LrRgtC+0YAg0LrQvtC/0LjRgNC+0LLQsNC90LjRjwoKICAgIH5TaW1wbGVDaXJjbGUoKTsKCiAgICBTaW1wbGVDaXJjbGUgb3BlcmF0b3IrKygpOwogICAgU2ltcGxlQ2lyY2xlIG9wZXJhdG9yKysoaW50KTsKCiAgICB2b2lkIFNldFJhZGl1cyhpbnQpOwogICAgaW50IEdldFJhZGl1cygpOwoKICAgIHZvaWQgSGVsbG8oKWNvbnN0eyBjb3V0PDwiSGVsbG8hIEkgYW0gY29uc3RcbiI7ICB9CiAgICB2b2lkIEhlbGxvKCl7IGNvdXQ8PCJIZWxsbyEgSSBhbSBub3QgY29uc3RcbiI7ICB9CnByaXZhdGU6CiAgICBpbnQgKml0c1JhZGl1czsKfTsKClNpbXBsZUNpcmNsZSA6OiBTaW1wbGVDaXJjbGUoKXtpdHNSYWRpdXM9bmV3IGludDsqaXRzUmFkaXVzPTU7fQpTaW1wbGVDaXJjbGUgOjogU2ltcGxlQ2lyY2xlKGludCBpbnB1dCl7aXRzUmFkaXVzPW5ldyBpbnQ7Kml0c1JhZGl1cz1pbnB1dDt9ClNpbXBsZUNpcmNsZSA6OiBTaW1wbGVDaXJjbGUoU2ltcGxlQ2lyY2xlICYgcmhzKXtpbnQgdmFsPXJocy5HZXRSYWRpdXMoKTsgaXRzUmFkaXVzPW5ldyBpbnQodmFsKTt9ClNpbXBsZUNpcmNsZSA6OiB+U2ltcGxlQ2lyY2xlKCl7fQpTaW1wbGVDaXJjbGUgU2ltcGxlQ2lyY2xlIDo6IG9wZXJhdG9yKysoKXsgICAgKysoKml0c1JhZGl1cyk7ICAgIHJldHVybiAqdGhpczt9CnZvaWQgU2ltcGxlQ2lyY2xlIDo6IFNldFJhZGl1cyhpbnQgaW5wdXQpe2l0c1JhZGl1cz1uZXcgaW50OyppdHNSYWRpdXM9aW5wdXQ7fQppbnQgU2ltcGxlQ2lyY2xlIDo6IEdldFJhZGl1cygpe3JldHVybiAqaXRzUmFkaXVzO30KCgpTaW1wbGVDaXJjbGUgU2ltcGxlQ2lyY2xlIDo6IG9wZXJhdG9yKysoaW50KQp7CiAgICBTaW1wbGVDaXJjbGUgdGVtcCgqdGhpcyk7CiAgICArKygqaXRzUmFkaXVzKTsKICAgIHJldHVybiB0ZW1wOwp9CgoKCmludCBtYWluKCkKeyAgICAKICAgIFNpbXBsZUNpcmNsZSBhKDEwKSwgYigyMCk7CgogICAgKGIrKykuSGVsbG8oKTsKLy8gICAgICsrYTsrK2I7Ci8vICAgICBhKys7YisrOwogICAgIGE9YisrOy8vPD0g0JfQtNC10YHRjCDQvtGI0LjQsdC60LAKLy8gICAgIGE9KytiOy8vPD0g0Lgg0LfQtNC10YHRjC4KLy8gICAgIGNvdXQgPDwgYS5HZXRSYWRpdXMoKSA8PCAiICIgPDwgYi5HZXRSYWRpdXMoKSA8PCBlbmRsOwp9