저는 C++을 처음 사용하고 제 질문이 간단 해 보일 수 있습니다. 나는이 코드를 이해할 수 없다 :클래스의 템플릿 사용
template<typename a, typename b>
bool operator < (const Pair<a,b> &op1 , const Pair<a,b> &op2)
{
return (op1.first() < op2.first())
};
그것은 그 연산자는 함수와 출력 타입이 BOOL 인 것 같다. 그럼 그 "템플릿"은 무엇입니까? 이 템플릿은 클래스 정의 이전에 정의되었으므로
template<typename a, typename b>
class Pair { ...
기능 템플릿에서 템플릿을 더 읽기
선언되었지만 아직 정의되지 않은 유형을 사용하는 방법에 대한 특별한 규칙을 가지고 않습니다. 이 경우,'operator <'함수 다음에 클래스 정의를 갖는 것은 합리적입니다. 컴파일러가 알 수 있도록'Pair' 클래스 템플릿 *이'operator *'함수 앞에 있어야합니다. 'Pair'는 클래스 템플릿이 아니라 글로벌 변수가 아닙니다.) – dyp