>  기사  >  백엔드 개발  >  친구 연산자를 오버로드하는 방법`

친구 연산자를 오버로드하는 방법`

DDD
DDD원래의
2024-11-01 02:59:27521검색

How to Overload Friend Operator `

친구 연산자 오버로드 << 템플릿 클래스

<< 연산자를 템플릿 클래스의 친구로 사용하면 템플릿이 아닌 함수를 선언하고 있음을 나타내는 컴파일러 경고가 나타날 수 있습니다. 이 문제를 해결하려면 친구 선언 전에 템플릿 함수를 올바르게 선언해야 합니다.

제공된 코드에서 << 연산자는 다음과 같습니다.

<code class="cpp">friend ostream&amp; operator<<(ostream&amp;, Pair<T,U>&amp;);<p>그러나 컴파일러에서는 <> 함수 이름에 대괄호를 추가하여 템플릿 함수로 선언해야 함을 나타냅니다. 올바른 구문은 다음과 같습니다.</p>
<pre class="brush:php;toolbar:false"><code class="cpp">friend ostream&amp; operator<< <> (ostream&amp;, Pair<T,U>&amp;);</code>

이것은 << 연산자를 템플릿 클래스 쌍의 친구로 지정하고 일반 매개변수 T와 U를 사용하는 템플릿 함수임을 지정합니다.

템플릿 함수 선언은 쌍 클래스 템플릿 정의 앞에 배치되어 다음을 보장해야 합니다. 컴파일러는 친구 선언을 구문 분석할 때 템플릿 함수를 인식합니다. 올바른 친구 선언과 템플릿 함수 선언이 포함된 수정된 코드:

template  class Pair;

template 
ostream& operator<< <> (ostream&, Pair&);

// Pair template class definition...

위 내용은 친구 연산자를 오버로드하는 방법`의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.