Advertisement
fueanta

Operator Overloading Basics (cpp): member function

Sep 6th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. // cpp: operator overloading( member function ), basics
  2. // Author: fueanta
  3.  
  4. #include <iostream>
  5. #include <conio.h>
  6.  
  7. using namespace std;
  8.  
  9. class point
  10. {
  11.    int x,y;
  12. public:
  13.     point(int x=0, int y=0):x(x),y(y) {}
  14.     void show();
  15.     // Operator Over-loadings:
  16.     point operator-();
  17.     point operator+(point);
  18.     point operator+(int);
  19.     void operator=(point);
  20.     point operator+=(int);
  21.     void operator+=(point);
  22.     point operator++();
  23.     point operator++(int);
  24.     bool operator==(point);
  25. };
  26.  
  27. void point::show()
  28. {
  29.     cout << "X= " << x << "\tY= " << y << endl;
  30. }
  31. point point::operator-()
  32. {
  33.     return point(-x,-y);
  34. }
  35. point point::operator+(point i)
  36. {
  37.     return point(x+i.x, y+i.y);
  38. }
  39. point point::operator+(int i)
  40. {
  41.     return point(x+i, y+i);
  42. }
  43. void point::operator=(point i)
  44. {
  45.     x=i.x; y=i.y;
  46.     //return *this; then, return type should be given.
  47. }
  48. point point::operator+=(int i)
  49. {
  50.     x+=i; y+=i;
  51.     return *this;
  52. }
  53. void point::operator+=(point i)
  54. {
  55.     x+= i.x; y+= i.y;
  56.     //return *this; then, return type should be given.
  57. }
  58. point point::operator++()
  59. {
  60.     return point(++x, ++y);
  61. }
  62. point point::operator++(int)
  63. {
  64.     return point(x++, y++);
  65. }
  66. bool point::operator==(point i)
  67. {
  68.     if(x==i.x && y==i.y)
  69.         return true;
  70.     else
  71.         return false;
  72. }
  73.  
  74. int main()
  75. {
  76.     point p1(10,20),p2(20,30),p3;
  77.     p3= -p1;
  78.     p3.show();
  79.     p3= p1+p2;
  80.     p3.show();
  81.     p3= p1+5;
  82.     p3.show();
  83.     p3= p2;
  84.     p3.show();
  85.     p3+= 5;
  86.     p3.show();
  87.     p1+= p2;
  88.     p1.show();
  89.     p3= ++p1;
  90.     p3.show();
  91.     p1.show();
  92.     p3= p2++;
  93.     p3.show();
  94.     p2.show();
  95.     //point p4(31,51);
  96.     if (p1==p2)
  97.         cout << "Equal." << endl;
  98.     else
  99.         cout << "Not Equal." << endl;
  100.     getch();
  101.     return 0;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement