fork download
  1.  
  2. // A C++ program to check if four given points form a square or not.
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. // Structure of a point in 2D space
  7. struct Point {
  8. int x, y;
  9. };
  10.  
  11. // A utility function to find square of distance
  12. // from point 'p' to poitn 'q'
  13. int distSq(Point p, Point q)
  14. {
  15. return (p.x - q.x) * (p.x - q.x) + (p.y - q.y) * (p.y - q.y);
  16. }
  17.  
  18. // This function returns true if (p1, p2, p3, p4) form a
  19. // square, otherwise false
  20. bool isSquare(Point p1, Point p2, Point p3, Point p4)
  21. {
  22. int d2 = distSq(p1, p2); // from p1 to p2
  23. int d3 = distSq(p1, p3); // from p1 to p3
  24. int d4 = distSq(p1, p4); // from p1 to p4
  25.  
  26. // If lengths if (p1, p2) and (p1, p3) are same, then
  27. // following conditions must met to form a square.
  28. // 1) Square of length of (p1, p4) is same as twice
  29. // the square of (p1, p2)
  30. // 2) Square of length of (p2, p3) is same as twice the square of (p1, p2)
  31.  
  32. if (d2 == d3 && 2 * d2 == d4 && 2 * d2 == distSq(p2, p3)) {
  33. int d = distSq(p2, p4);
  34. return (d == distSq(p3, p4) && d == d2);
  35. }
  36.  
  37. // The below two cases are similar to above case
  38. if (d3 == d4 && 2 * d3 == d2 && 2 * d3 == distSq(p3, p4)) {
  39. int d = distSq(p2, p3);
  40. return (d == distSq(p2, p4) && d == d3);
  41. }
  42. if (d2 == d4 && 2 * d2 == d3 && 2 * d2 == distSq(p2, p4)) {
  43. int d = distSq(p2, p3);
  44. return (d == distSq(p3, p4) && d == d2);
  45. }
  46.  
  47. return false;
  48. }
  49.  
  50. // Driver program to test above function
  51. int main()
  52. {
  53. Point p1,p2,p3,p4,p5,p6,p7,p8;
  54. cin>>p1>>p2;
  55. cin>>p3>>p4;
  56. cin>>p5>>p6;
  57. cin>>p7>>p8;
  58. isSquare(p1, p2, p3, p4) ? cout << "yes" : cout << "no";
  59. return 0;
  60. }
Compilation error #stdin compilation error #stdout 0s 15232KB
stdin
100 100
100 200
200 200
200 100
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:54:8: error: no match for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘Point’)
     cin>>p1>>p2;
     ~~~^~~~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:120:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}’
/usr/include/c++/6/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:124:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}’
/usr/include/c++/6/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/6/istream:131:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::ios_base& (*)(std::ios_base&)’
/usr/include/c++/6/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(bool& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:168:7: note:   no known conversion for argument 1 from ‘Point’ to ‘bool&’
/usr/include/c++/6/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(short& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:172:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short int&’
/usr/include/c++/6/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned short& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:175:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short unsigned int&’
/usr/include/c++/6/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(int& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:179:7: note:   no known conversion for argument 1 from ‘Point’ to ‘int&’
/usr/include/c++/6/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned int& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:182:7: note:   no known conversion for argument 1 from ‘Point’ to ‘unsigned int&’
/usr/include/c++/6/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:186:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long int&’
/usr/include/c++/6/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:190:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long unsigned int&’
/usr/include/c++/6/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:195:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long int&’
/usr/include/c++/6/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:199:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long unsigned int&’
/usr/include/c++/6/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(float& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:214:7: note:   no known conversion for argument 1 from ‘Point’ to ‘float&’
/usr/include/c++/6/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:218:7: note:   no known conversion for argument 1 from ‘Point’ to ‘double&’
/usr/include/c++/6/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:222:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long double&’
/usr/include/c++/6/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(void*& __p)
       ^~~~~~~~
/usr/include/c++/6/istream:235:7: note:   no known conversion for argument 1 from ‘Point’ to ‘void*&’
/usr/include/c++/6/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
/usr/include/c++/6/istream:259:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}’
In file included from /usr/include/c++/6/string:53:0,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:3:
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     operator>>(basic_istream<_CharT, _Traits>& __in,
     ^~~~~~~~
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   ‘Point’ is not derived from ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:955:5: note: candidate: template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:955:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   mismatched types ‘_CharT2*’ and ‘Point’
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:923:5: note: candidate: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:923:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘Point’)
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:756:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:756:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   cannot convert ‘p1’ (type ‘Point’) to type ‘unsigned char&’
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:761:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)
     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:761:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   cannot convert ‘p1’ (type ‘Point’) to type ‘signed char&’
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:803:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:803:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   cannot convert ‘p1’ (type ‘Point’) to type ‘unsigned char*’
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:808:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)
     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:808:5: note:   template argument deduction/substitution failed:
prog.cpp:54:10: note:   cannot convert ‘p1’ (type ‘Point’) to type ‘signed char*’
     cin>>p1>>p2;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:924:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = Point] <near match>
     operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
     ^~~~~~~~
/usr/include/c++/6/istream:924:5: note:   conversion of argument 1 would be ill-formed:
prog.cpp:54:10: error: cannot bind ‘std::istream {aka std::basic_istream<char>}’ lvalue to ‘std::basic_istream<char>&&’
     cin>>p1>>p2;
          ^~
prog.cpp:55:8: error: no match for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘Point’)
     cin>>p3>>p4;
     ~~~^~~~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:120:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}’
/usr/include/c++/6/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:124:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}’
/usr/include/c++/6/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/6/istream:131:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::ios_base& (*)(std::ios_base&)’
/usr/include/c++/6/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(bool& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:168:7: note:   no known conversion for argument 1 from ‘Point’ to ‘bool&’
/usr/include/c++/6/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(short& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:172:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short int&’
/usr/include/c++/6/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned short& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:175:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short unsigned int&’
/usr/include/c++/6/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(int& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:179:7: note:   no known conversion for argument 1 from ‘Point’ to ‘int&’
/usr/include/c++/6/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned int& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:182:7: note:   no known conversion for argument 1 from ‘Point’ to ‘unsigned int&’
/usr/include/c++/6/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:186:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long int&’
/usr/include/c++/6/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:190:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long unsigned int&’
/usr/include/c++/6/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:195:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long int&’
/usr/include/c++/6/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:199:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long unsigned int&’
/usr/include/c++/6/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(float& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:214:7: note:   no known conversion for argument 1 from ‘Point’ to ‘float&’
/usr/include/c++/6/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:218:7: note:   no known conversion for argument 1 from ‘Point’ to ‘double&’
/usr/include/c++/6/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:222:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long double&’
/usr/include/c++/6/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(void*& __p)
       ^~~~~~~~
/usr/include/c++/6/istream:235:7: note:   no known conversion for argument 1 from ‘Point’ to ‘void*&’
/usr/include/c++/6/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
/usr/include/c++/6/istream:259:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}’
In file included from /usr/include/c++/6/string:53:0,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:3:
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     operator>>(basic_istream<_CharT, _Traits>& __in,
     ^~~~~~~~
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   ‘Point’ is not derived from ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:955:5: note: candidate: template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:955:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   mismatched types ‘_CharT2*’ and ‘Point’
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:923:5: note: candidate: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:923:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘Point’)
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:756:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:756:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   cannot convert ‘p3’ (type ‘Point’) to type ‘unsigned char&’
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:761:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)
     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:761:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   cannot convert ‘p3’ (type ‘Point’) to type ‘signed char&’
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:803:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:803:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   cannot convert ‘p3’ (type ‘Point’) to type ‘unsigned char*’
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:808:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)
     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:808:5: note:   template argument deduction/substitution failed:
prog.cpp:55:10: note:   cannot convert ‘p3’ (type ‘Point’) to type ‘signed char*’
     cin>>p3>>p4;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:924:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = Point] <near match>
     operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
     ^~~~~~~~
/usr/include/c++/6/istream:924:5: note:   conversion of argument 1 would be ill-formed:
prog.cpp:55:10: error: cannot bind ‘std::istream {aka std::basic_istream<char>}’ lvalue to ‘std::basic_istream<char>&&’
     cin>>p3>>p4;
          ^~
prog.cpp:56:8: error: no match for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘Point’)
     cin>>p5>>p6;
     ~~~^~~~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:120:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}’
/usr/include/c++/6/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:124:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}’
/usr/include/c++/6/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/6/istream:131:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::ios_base& (*)(std::ios_base&)’
/usr/include/c++/6/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(bool& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:168:7: note:   no known conversion for argument 1 from ‘Point’ to ‘bool&’
/usr/include/c++/6/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(short& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:172:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short int&’
/usr/include/c++/6/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned short& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:175:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short unsigned int&’
/usr/include/c++/6/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(int& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:179:7: note:   no known conversion for argument 1 from ‘Point’ to ‘int&’
/usr/include/c++/6/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned int& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:182:7: note:   no known conversion for argument 1 from ‘Point’ to ‘unsigned int&’
/usr/include/c++/6/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:186:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long int&’
/usr/include/c++/6/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:190:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long unsigned int&’
/usr/include/c++/6/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:195:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long int&’
/usr/include/c++/6/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:199:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long unsigned int&’
/usr/include/c++/6/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(float& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:214:7: note:   no known conversion for argument 1 from ‘Point’ to ‘float&’
/usr/include/c++/6/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:218:7: note:   no known conversion for argument 1 from ‘Point’ to ‘double&’
/usr/include/c++/6/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:222:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long double&’
/usr/include/c++/6/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(void*& __p)
       ^~~~~~~~
/usr/include/c++/6/istream:235:7: note:   no known conversion for argument 1 from ‘Point’ to ‘void*&’
/usr/include/c++/6/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
/usr/include/c++/6/istream:259:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}’
In file included from /usr/include/c++/6/string:53:0,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:3:
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     operator>>(basic_istream<_CharT, _Traits>& __in,
     ^~~~~~~~
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   ‘Point’ is not derived from ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:955:5: note: candidate: template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:955:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   mismatched types ‘_CharT2*’ and ‘Point’
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:923:5: note: candidate: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:923:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘Point’)
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:756:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:756:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   cannot convert ‘p5’ (type ‘Point’) to type ‘unsigned char&’
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:761:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)
     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:761:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   cannot convert ‘p5’ (type ‘Point’) to type ‘signed char&’
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:803:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:803:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   cannot convert ‘p5’ (type ‘Point’) to type ‘unsigned char*’
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:808:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)
     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:808:5: note:   template argument deduction/substitution failed:
prog.cpp:56:10: note:   cannot convert ‘p5’ (type ‘Point’) to type ‘signed char*’
     cin>>p5>>p6;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:924:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = Point] <near match>
     operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
     ^~~~~~~~
/usr/include/c++/6/istream:924:5: note:   conversion of argument 1 would be ill-formed:
prog.cpp:56:10: error: cannot bind ‘std::istream {aka std::basic_istream<char>}’ lvalue to ‘std::basic_istream<char>&&’
     cin>>p5>>p6;
          ^~
prog.cpp:57:8: error: no match for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘Point’)
     cin>>p7>>p8;
     ~~~^~~~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:120:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}’
/usr/include/c++/6/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/6/istream:124:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}’
/usr/include/c++/6/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/6/istream:131:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::ios_base& (*)(std::ios_base&)’
/usr/include/c++/6/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(bool& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:168:7: note:   no known conversion for argument 1 from ‘Point’ to ‘bool&’
/usr/include/c++/6/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(short& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:172:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short int&’
/usr/include/c++/6/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned short& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:175:7: note:   no known conversion for argument 1 from ‘Point’ to ‘short unsigned int&’
/usr/include/c++/6/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator>>(int& __n);
       ^~~~~~~~
/usr/include/c++/6/istream:179:7: note:   no known conversion for argument 1 from ‘Point’ to ‘int&’
/usr/include/c++/6/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned int& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:182:7: note:   no known conversion for argument 1 from ‘Point’ to ‘unsigned int&’
/usr/include/c++/6/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:186:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long int&’
/usr/include/c++/6/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:190:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long unsigned int&’
/usr/include/c++/6/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:195:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long int&’
/usr/include/c++/6/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(unsigned long long& __n)
       ^~~~~~~~
/usr/include/c++/6/istream:199:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long long unsigned int&’
/usr/include/c++/6/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(float& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:214:7: note:   no known conversion for argument 1 from ‘Point’ to ‘float&’
/usr/include/c++/6/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:218:7: note:   no known conversion for argument 1 from ‘Point’ to ‘double&’
/usr/include/c++/6/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long double& __f)
       ^~~~~~~~
/usr/include/c++/6/istream:222:7: note:   no known conversion for argument 1 from ‘Point’ to ‘long double&’
/usr/include/c++/6/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(void*& __p)
       ^~~~~~~~
/usr/include/c++/6/istream:235:7: note:   no known conversion for argument 1 from ‘Point’ to ‘void*&’
/usr/include/c++/6/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
/usr/include/c++/6/istream:259:7: note:   no known conversion for argument 1 from ‘Point’ to ‘std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}’
In file included from /usr/include/c++/6/string:53:0,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:3:
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     operator>>(basic_istream<_CharT, _Traits>& __in,
     ^~~~~~~~
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   ‘Point’ is not derived from ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:955:5: note: candidate: template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:955:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   mismatched types ‘_CharT2*’ and ‘Point’
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/istream:934:0,
                 from /usr/include/c++/6/iostream:40,
                 from prog.cpp:3:
/usr/include/c++/6/bits/istream.tcc:923:5: note: candidate: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
     ^~~~~~~~
/usr/include/c++/6/bits/istream.tcc:923:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘Point’)
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:756:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:756:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   cannot convert ‘p7’ (type ‘Point’) to type ‘unsigned char&’
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:761:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)
     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
     ^~~~~~~~
/usr/include/c++/6/istream:761:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   cannot convert ‘p7’ (type ‘Point’) to type ‘signed char&’
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:803:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)
     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:803:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   cannot convert ‘p7’ (type ‘Point’) to type ‘unsigned char*’
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:808:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)
     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
     ^~~~~~~~
/usr/include/c++/6/istream:808:5: note:   template argument deduction/substitution failed:
prog.cpp:57:10: note:   cannot convert ‘p7’ (type ‘Point’) to type ‘signed char*’
     cin>>p7>>p8;
          ^~
In file included from /usr/include/c++/6/iostream:40:0,
                 from prog.cpp:3:
/usr/include/c++/6/istream:924:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = Point] <near match>
     operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
     ^~~~~~~~
/usr/include/c++/6/istream:924:5: note:   conversion of argument 1 would be ill-formed:
prog.cpp:57:10: error: cannot bind ‘std::istream {aka std::basic_istream<char>}’ lvalue to ‘std::basic_istream<char>&&’
     cin>>p7>>p8;
          ^~
stdout
Standard output is empty