fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class SimpleCircle
  5. {
  6. public:
  7. SimpleCircle();
  8. SimpleCircle(int);
  9.  
  10. SimpleCircle(SimpleCircle & rhs);// <= Конструктор копирования
  11.  
  12. ~SimpleCircle();
  13.  
  14. SimpleCircle operator++();
  15. SimpleCircle operator++(int);
  16.  
  17. void SetRadius(int);
  18. int GetRadius();
  19.  
  20. void Hello()const{ cout<<"Hello! I am const\n"; }
  21. void Hello(){ cout<<"Hello! I am not const\n"; }
  22. private:
  23. int *itsRadius;
  24. };
  25.  
  26. SimpleCircle :: SimpleCircle(){itsRadius=new int;*itsRadius=5;}
  27. SimpleCircle :: SimpleCircle(int input){itsRadius=new int;*itsRadius=input;}
  28. SimpleCircle :: SimpleCircle(SimpleCircle & rhs){int val=rhs.GetRadius(); itsRadius=new int(val);}
  29. SimpleCircle :: ~SimpleCircle(){}
  30. SimpleCircle SimpleCircle :: operator++(){ ++(*itsRadius); return *this;}
  31. void SimpleCircle :: SetRadius(int input){itsRadius=new int;*itsRadius=input;}
  32. int SimpleCircle :: GetRadius(){return *itsRadius;}
  33.  
  34.  
  35. SimpleCircle SimpleCircle :: operator++(int)
  36. {
  37. SimpleCircle temp(*this);
  38. ++(*itsRadius);
  39. return temp;
  40. }
  41.  
  42.  
  43.  
  44. int main()
  45. {
  46. SimpleCircle a(10), b(20);
  47.  
  48. (b++).Hello();
  49. // ++a;++b;
  50. // a++;b++;
  51. a=b++;//<= Здесь ошибка
  52. // a=++b;//<= и здесь.
  53. // cout << a.GetRadius() << " " << b.GetRadius() << endl;
  54. }
Success #stdin #stdout 0.01s 2812KB
stdin
Standard input is empty
stdout
Hello! I am not const