템플릿이있어서 나는 >>에서 과부하 연산자를 사용할 수 없습니다.과부하 연산자 >>
template <class C> class Fract {
/*some fields*/
friend std::ostream& std::operator<<(std::ostream& out, Fract f);
};
내가 그것을 쓸 때, GCC (CodeBlocks)이 기능 템플릿 (템플릿이 아닌)이 아니라고, 나에게 쓸 수 있지만 내가 아는 방법, 서식 범위가 {에}에서 전염됩니다. 어때? 다른 코드를 사용해보십시오 :
template <class C> class Fract {
/*some fields*/
std::ostream& std::operator<<(Fract f);
};
그리고 작동하지 않습니다. 나는 다음과 같이 사용해야한다고 생각한다 :
std::ostream<C>& std::operator<<(Fract f);
나는 그것을 올바르게 쓸 수 없다. 나 좀 도와 줄 수있어?
UPD : 실제 프로그램에서이 실수는 없습니다!
'표준 : : 연산자 >>'입력에 사용되는 SEE 클래스의 다음과 같은 외부처럼 정의해야합니다. 출력용으로 사용하는 것을 강력히 권합니다. – edmz
또한 누락되었습니다. 마지막 괄호 뒤에. – Veritas