친구 연산자 오버로드 << 템플릿 클래스
<< 연산자를 템플릿 클래스의 친구로 사용하면 템플릿이 아닌 함수를 선언하고 있음을 나타내는 컴파일러 경고가 나타날 수 있습니다. 이 문제를 해결하려면 친구 선언 전에 템플릿 함수를 올바르게 선언해야 합니다.
제공된 코드에서 << 연산자는 다음과 같습니다.
<code class="cpp">friend ostream& operator<<(ostream&, Pair<T,U>&);<p>그러나 컴파일러에서는 <> 함수 이름에 대괄호를 추가하여 템플릿 함수로 선언해야 함을 나타냅니다. 올바른 구문은 다음과 같습니다.</p> <pre class="brush:php;toolbar:false"><code class="cpp">friend ostream& operator<< <> (ostream&, Pair<T,U>&);</code>
이것은 << 연산자를 템플릿 클래스 쌍의 친구로 지정하고 일반 매개변수 T와 U를 사용하는 템플릿 함수임을 지정합니다.
템플릿 함수 선언은 쌍 클래스 템플릿 정의 앞에 배치되어 다음을 보장해야 합니다. 컴파일러는 친구 선언을 구문 분석할 때 템플릿 함수를 인식합니다. 올바른 친구 선언과 템플릿 함수 선언이 포함된 수정된 코드:
template class Pair;
template
ostream& operator<< <> (ostream&, Pair&);
// Pair template class definition...위 내용은 친구 연산자를 오버로드하는 방법`의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!