에러 해결이 잘안됩니다.
글쓴이: nayana / 작성시간: 화, 2004/04/20 - 8:05오후
#include <iostream> using namespace std; // Point 클래스 정의 class Point { public : // 생성자 Point( int ax = 0, int ay = 0 ); void SetPoint( int ax, int ay); // 출력 연산자 함수 정의 friend ostream& operator << ( ostream& co, Point pt ); // 입력 연산자 함수 정의 friend istream& operator >> ( istream& ci, Point& pt ); public : int x, y; // 멤버값 (x,y) }; // 생성자 Point::Point( int ax, int ay ) { SetPoint( ax, ay ); } // 멤버값 지정 void Point::SetPoint( int ax, int ay ) { x = ax; y = ay; } // 출력 연산자 함수 정의, (x,y) 형태로 출력 ostream& operator << ( ostream& co, Point& pt ) { co << "(" << pt.x << "," << pt.y << ")"; return co; } // 입력 연산자 함수, (x,y) 형태로 입력 istream& operator >> ( istream& ci, Point& pt ) { char dummy; // ( x , y ) 형태로 객테 데이터 입력 ci >> dummy >> pt.x >> dummy >> pt.y >> dummy; return ci; } int main( void ) { Point pt[2]; // Point 객체 입력 cin >> " 입력 : "; cin >> pt[0] >> pt[1]; // Point 객체 출력 cin >> " 출력 : \n"; cout << "Point [0] : " << pt[0] << endl; cout << "Point [1] : " << pt[1] << endl; return 0; }
vc++에서 했을때 에러 코드 입니다.
error C2593: 'operator >>' is ambiguous error C2593: 'operator <<' is ambiguous error C2593: 'operator <<' is ambiguous
g++에서 했을때 에러 코드입니다.
ex03.cpp: In function `int main()': ex03.cpp:60: ambiguous overload for `std::istream& >> const char[9]' operator /usr/include/c++/3.2.2/istream:255: candidates are: std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*) [with _Traits = std::char_traits<char>] <near match> /usr/include/c++/3.2.2/istream:250: std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*) [with _Traits = std::char_traits<char>] <near match> ex03.cpp:64: ambiguous overload for `std::istream& >> const char[9]' operator /usr/include/c++/3.2.2/istream:255: candidates are: std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*) [with _Traits = std::char_traits<char>] <near match> /usr/include/c++/3.2.2/istream:250: std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*) [with _Traits = std::char_traits<char>] <near match>
Forums:
댓글 달기