운영자<< C : Friend 함수 vs. 멤버 함수
C에서는 연산자<< 친구 함수 또는 멤버 함수로 정의할 수 있습니다. 이 기사에서는 특정 시나리오에서 둘 중 하나를 선택하는 근거를 살펴봅니다.
연산자를 위한 친구 함수 접근 방식<<
연산자를 정의할 때<< friend 함수로서 구문에는 일반적으로 다음이 포함됩니다.
<🎝🎝🎝>이 접근 방식은 관계 비교에 클래스의 전용 멤버 검사가 포함될 때 권장됩니다. 친구 함수는 클래스의 비공개 멤버에 액세스할 수 있으므로 직접 비교를 수행할 수 있습니다.
연산자를 위한 멤버 함수 접근 방식<<
이 접근 방식에서는 연산자<< 클래스의 멤버 함수로 정의됩니다.
<🎝🎝🎝>이 접근 방식은 비교에 공개적으로 액세스할 수 있는 데이터 또는 간단한 작업이 포함될 때 적합합니다. 그러나 여기에는 중요한 제한 사항이 있습니다. 비교에 비공개 멤버에 대한 액세스가 필요한 경우 멤버 함수 접근 방식을 사용할 수 없습니다.
접근 방식 비교
스트리밍 연산:
연산자를 정의할 때<< 스트리밍 작업에는 친구 기능과 멤버 기능을 모두 사용할 수 있습니다. 그러나 스트리밍 작업이 스트림 개체를 수정해야 하는 경우(예: 줄바꿈 추가) 친구 함수를 사용해야 합니다.
동등 및 관계 연산자:
=와 같은 연산자의 경우 =, !=, <, > 등은 멤버 함수로 정의하는 것이 좋습니다. 이 접근 방식을 사용하면 클래스 내의 전용 멤버를 쉽게 비교할 수 있습니다. 또한 추가 친구 기능이 필요하지 않아 코드가 단순화됩니다.
예
to_str() 메서드가 있는 Paragraph 클래스의 다음 예를 고려해 보세요.
친구 기능 접근 방식:
멤버 함수 접근 방식:
이 경우에는 개인에 대한 액세스를 허용하므로 친구 함수 접근 방식이 선호됩니다. 스트리밍 운영을 위한 멤버 m_para.
위 내용은 Friend 함수와 Operator의 멤버 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!