Advertisement
Guest User

point.cpp

a guest
Dec 16th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. #include "linkedList.h"
  2. #include <cstring>
  3.  
  4. Point::Point() {
  5. _name = nullptr;
  6. _x = 0;
  7. _y = 0;
  8. next = NULL;
  9. }
  10.  
  11. Point::Point(double x,double y) {
  12. const char* name = "Miejsce nieznane";
  13. _name = new char[strlen(name)+1];
  14. for(int i=0; i<(int)strlen(name)+1; i++) {
  15. _name[i] = name[i];
  16. }
  17. _x = x;
  18. _y = y;
  19. next = NULL;
  20. }
  21.  
  22. Point::Point(const char* name,double x,double y) {
  23. _name = new char[strlen(name)+1];
  24. for(int i=0; i<(int)strlen(name)+1; i++) {
  25. _name[i] = name[i];
  26. }
  27. _x = x;
  28. _y = y;
  29. next = NULL;
  30. }
  31.  
  32. Point::Point(const Point& oldPoint) {
  33. _name = new char[strlen(oldPoint._name)+1];
  34. for(int i=0; i<(int)strlen(oldPoint._name)+1; i++) {
  35. _name[i] = oldPoint._name[i];
  36. }
  37. _x = oldPoint._x;
  38. _y = oldPoint._y;
  39. next = oldPoint -> next;
  40. }
  41.  
  42. Point::Point(Point&& oldPoint) {
  43. _x = oldPoint._x;
  44. _y = oldPoint._y;
  45. _name = oldPoint._name;
  46. oldPoint._x = 0;
  47. oldPoint._y = 0;
  48. oldPoint._name = nullptr;
  49. next = oldPoint -> next;
  50. oldPoint -> next = NULL;
  51. }
  52.  
  53. bool Point::operator==(Point& reference)
  54. {
  55. if(this -> _x == reference._x)
  56. {
  57. if(this -> _y == reference._y)
  58. return true;
  59. }
  60. else
  61. return false;
  62. }
  63.  
  64. bool Point::operator>(Point& reference)
  65. {
  66. if(this -> _x > reference._x)
  67. {
  68. return true;
  69. }
  70. else if(this -> _x == reference._x)
  71. if(this -> _y > reference._y)
  72. return true;
  73. else
  74. return false;
  75. }
  76.  
  77. bool Point::operator<(Point& reference)
  78. {
  79. if(this -> _x < reference._x)
  80. {
  81. return true;
  82. }
  83. else if(this -> _x == reference._x)
  84. if(this -> _y < reference._y)
  85. return true;
  86. else
  87. return false;
  88. }
  89.  
  90. std::ostream& Point::operator<<(ostream& Stream, const Point& reference)
  91. {
  92. Stream<< reference._name << "(" << reference._x << ", " << reference._y << ")";
  93. return Stream;
  94. }
  95.  
  96. void Point::fullPrint() {
  97. if(_name == nullptr) {
  98. std::cout << "NULL (" << _x << ", " << _y << ")" << '\n';
  99. }
  100. else {
  101. std::cout << _name << " (" << _x << ", " << _y << ")" << '\n';
  102. }
  103. }
  104.  
  105. void Point::changeName(const char* newName) {
  106. delete[] _name;
  107. _name = new char[strlen(newName)+1];
  108. for(int i=0; i<(int)strlen(newName)+1; i++) {
  109. _name[i] = newName[i];
  110. }
  111. }
  112.  
  113. void Point::move(double dx,double dy) {
  114. _x += dx;
  115. _y += dy;
  116. }
  117.  
  118. Point::~Point() {
  119. delete[] _name;
  120. delete next;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement