>백엔드 개발 >C++ >C에서 쉼표 연산자를 언제 오버로드해야 합니까?

C에서 쉼표 연산자를 언제 오버로드해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 22:37:03475검색

When Should You Overload the Comma Operator in C  ?

쉼표 연산자 오버로딩을 사용해야 하는 경우

쉼표 연산자 오버로딩은 C에서 자주 논의되지 않지만 이를 둘러싼 오해로 인해 다음과 같은 의문이 제기되었습니다. 실용적인 응용 프로그램입니다.

적절한 사용 사례

쉼표 연산자 오버로드가 가치 있는 것으로 입증된 상황 중 하나는 여러 색인이 필요한 지도로 작업할 때입니다. 다음 예를 고려하십시오.

<code class="c++">enum Place {new_york, washington, ...};

pair<Place, Place> operator , (Place p1, Place p2)
{
    return make_pair(p1, p2);
}

map< pair<Place, Place>, double> distance;
distance[new_york, washington] = 100;</code>

이 시나리오에서는 오버로드된 쉼표 연산자를 사용하면 두 값을 사용하여 지도를 편리하게 인덱싱할 수 있습니다. 그런 다음 구성된 쌍은 맵 키로 사용됩니다.

참고: 괄호 없이 쉼표 연산자를 오버로드하는 것은 C 20부터 더 이상 사용되지 않으며 C 23에서는 제거된다는 점을 언급할 가치가 있습니다. 최신 C 버전과의 호환성을 위해 괄호 안에 넣어야 합니다.

위 내용은 C에서 쉼표 연산자를 언제 오버로드해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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