>백엔드 개발 >C++ >Friend 함수와 Operator의 멤버 함수

Friend 함수와 Operator의 멤버 함수

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 16:07:16696검색

Friend Function vs. Member Function for Operator

운영자<< C : Friend 함수 vs. 멤버 함수

C에서는 연산자<< 친구 함수 또는 멤버 함수로 정의할 수 있습니다. 이 기사에서는 특정 시나리오에서 둘 중 하나를 선택하는 근거를 살펴봅니다.

연산자를 위한 친구 함수 접근 방식<<

연산자를 정의할 때<< friend 함수로서 구문에는 일반적으로 다음이 포함됩니다.

<🎝🎝🎝>

이 접근 방식은 관계 비교에 클래스의 전용 멤버 검사가 포함될 때 권장됩니다. 친구 함수는 클래스의 비공개 멤버에 액세스할 수 있으므로 직접 비교를 수행할 수 있습니다.

연산자를 위한 멤버 함수 접근 방식<<

이 접근 방식에서는 연산자<< 클래스의 멤버 함수로 정의됩니다.

<🎝🎝🎝>

이 접근 방식은 비교에 공개적으로 액세스할 수 있는 데이터 또는 간단한 작업이 포함될 때 적합합니다. 그러나 여기에는 중요한 제한 사항이 있습니다. 비교에 비공개 멤버에 대한 액세스가 필요한 경우 멤버 함수 접근 방식을 사용할 수 없습니다.

접근 방식 비교

스트리밍 연산:
연산자를 정의할 때<< 스트리밍 작업에는 친구 기능과 멤버 기능을 모두 사용할 수 있습니다. 그러나 스트리밍 작업이 스트림 개체를 수정해야 하는 경우(예: 줄바꿈 추가) 친구 함수를 사용해야 합니다.

동등 및 관계 연산자:
=와 같은 연산자의 경우 =, !=, <, > 등은 멤버 함수로 정의하는 것이 좋습니다. 이 접근 방식을 사용하면 클래스 내의 전용 멤버를 쉽게 비교할 수 있습니다. 또한 추가 친구 기능이 필요하지 않아 코드가 단순화됩니다.

to_str() 메서드가 있는 Paragraph 클래스의 다음 예를 고려해 보세요.

친구 기능 접근 방식:

멤버 함수 접근 방식:

이 경우에는 개인에 대한 액세스를 허용하므로 친구 함수 접근 방식이 선호됩니다. 스트리밍 운영을 위한 멤버 m_para.

위 내용은 Friend 함수와 Operator의 멤버 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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