2013-08-12 2 views
0

IO 연산자 오버로딩 오류

ostream& operator <<(ostream &os,const object &mono) 
{ 
    os << mono.coef<<" *X^"<<mono.degree; 
    return os;  
} 

오류 나는 점점 오전 :

오류 C2143 : 구문 오류 : 실종 ';' 앞에 '&'
오류 C4430 : 누락 된 형식 지정자 - 가정합니다. 참고 : C++은 default-int를 지원하지 않습니다.
오류 C2061 : 구문 오류 : 식별자 'ostream'
오류 C4430 : 누락 된 형식 지정자 - 정수입니다. 참고 : C++ 기본-INT 오류 C2805를 지원하지 않습니다 : 매개 변수가 너무 적습니다 나는이 문제를 해결할 수 없습니다 나는 아직 찾을 수있는 모든 IO 오버로드 자습서를 확인했습니다

을 가지고 진 '< < 연산자'.

편집 : 추가 표준 : 제외한 모든 오류를 고정 친구가 해결로서 기능을 선언이 : 나는 그

EDIT2을 무엇을 의미하는지 잘 모릅니다 "> 오류 C2805 진 '연산자 < <는'너무 몇 가지 매개 변수가 있습니다" . 모두에게 감사드립니다! 당신은 ostream 사용하는

+0

여기서 객체 정의는 무엇입니까? –

+0

'ostream'과'object'와 같은 사운드는 모두 네임 스페이스 자격이 필요합니다. 전자는'std :: ostream' ('#include '이 있는지 확인하십시오.)이고 후자는 코드베이스에서'object'가 선언 된 위치에 따라 다릅니다. – cdhowie

+0

'ostream'이 알려지지 않았다면'fstream'이나'iostream'을 포함하지 못했을 것입니다. –

답변

1

네임 스페이스 std::

사용

std::ostream& operator <<(std::ostream& os,const object& mono)

0

으로 자격없이 당신이 friend 키워드를 놓쳤다 생각합니다.

그리고 나는 당신에게 공식 documentaion 추천 : http://en.cppreference.com/w/cpp/language/operators

또한 당신이 using namespace std; 또는 std::ostream&을 놓친합니다.

이 답변으로 문제가 해결되기를 바랍니다.