c++ - friending istream operator with class -


hello i'm trying overload operator >> class ecnouter error in eclipse.

code:

    friend istream& operator>>(const istream& is, const rangle& ra){     return >> ra.x >> ra.y; } 

code2:

    friend istream& operator>>(const istream& is, const rangle& ra) {     >> ra.x;     >> ra.y;     return  } 

both crash , don't know why, please help.

edit:

ra.x & ra.y both 2 private ints of class;

full error:

error:

   ..\/rightangle.h: in function 'std::istream& operator>>(std::istream&, const rangle&)': ..\/rightangle.h:65:12: error: ambiguous overload 'operator>>' in 'is >> ra.rangle::x' ..\/rightangle.h:65:12: note: candidates are: c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:122:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:122:7: note:   no known conversion argument 1 'const int' 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}' c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:126:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:126:7: note:   no known conversion argument 1 'const int' 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}' c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:133:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:133:7: note:   no known conversion argument 1 'const int' 'std::ios_base& (*)(std::ios_base&)' c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:241:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:241:7: note:   no known conversion argument 1 'const int' 'std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}' ..\/rightangle.h:66:12: error: ambiguous overload 'operator>>' in 'is >> ra.rangle::y' ..\/rightangle.h:66:12: note: candidates are: c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:122:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:122:7: note:   no known conversion argument 1 'const int' 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}' c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:126:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:126:7: note:   no known conversion argument 1 'const int' 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}' c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:133:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:133:7: note:   no known conversion argument 1 'const int' 'std::ios_base& (*)(std::ios_base&)' c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:241:7: note: 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>] <near match> c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/istream:241:7: note:   no known conversion argument 1 'const int' 'std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}'' 

since operator>> going modify parameters pass it, cannot references const, want like:

friend std::istream &operator>>(std::istream &is, rangle &ra) {      return >> ra.x >> ra.y; } 

note i/o operation (at least potentially) changes state of stream, (nearly?) want pass stream parameters non-const reference.


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -