문제

이 기능 선언은 나에게 오류를 제공합니다.

ostream& operator<<(ostream& os, hand& obj);

오류는 다음과 같습니다.

error C2143: syntax error : missing ';' before '&'
error C4430: missing type specifier
error C2065: 'os' : undeclared identifier
error C2065: 'obj' : undeclared identifier
error C2275: 'hand' : illegal use of this type as an expression
    see declaration of 'hand'
error C4430: missing type specifier

핸드는 내가 만든 클래스입니다. 디스플레이는 유형의 공개 데이터 구성원입니다. char*.

아무도 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

도움이 되었습니까?

해결책

선언은 옳은 것 같습니다. 그러나 오류 메시지는 그것을 암시합니다 ostream 유형으로 알려져 있지 않습니다. 시도해보십시오 iostream 헤더와 말 std::ostream 대신에.

당신이 고려해야 할 또 다른 것은 매개 변수 '핸드'를 const 참조로 만드는 것입니다. 따라서 임시를 받아들이고 인쇄 할 수도 있습니다.

다른 팁

이것은 헤더 안에 있습니까? 그러면 아마 말해야 할 것입니다 std::ostream. 당신을 확인하십시오 #include<iosfwd>.

또한 말할 수 있습니다 const hand&.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top