C에서 오버로드된 연산자는 친구 함수 또는 멤버 함수로 구현될 수 있습니다. 스트림 삽입 연산자 "<<"의 경우 특정 고려 사항에 따라 이러한 접근 방식을 선택할 수 있습니다.
friend ostream & operator<<(ostream & os, const Paragraph& p) { return os << p.to_str(); }
이 접근 방식은 스트림에 일반적으로 사용됩니다. 연산자 이유:
ostream & operator<<(Paragraph const& rhs);
생각하기 쉽지만 모든 클래스 메서드에 멤버 함수를 사용해야 하기 때문에 이 접근 방식은 "<<" 메서드에는 권장되지 않습니다. 여러 가지 이유로 연산자:
다음 클래스를 고려하세요.
class Paragraph { std::string m_para; public: Paragraph(std::string const& init) : m_para(init) {} std::string const& to_str() const { return m_para; } };
이 경우 " <<" 연산자는 다음과 같은 이유로 선호되는 선택입니다.
위 내용은 연산자 오버로딩을 위한 Friend 함수와 멤버 함수: `에 Friend 함수를 선호하는 경우는 언제입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!