<<의 모호한 오버로딩 ostream 연산자
<< Matrix 클래스의 연산자는 연산자 함수가 정확히 하나의 인수를 취해야 한다는 요구 사항에서 비롯됩니다. 이 경우 다음 코드로 인해 오류가 발생할 가능성이 높습니다.
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) { [...] }
연산자<< function은 Matrix 클래스의 멤버 함수로 정의되며 암시적으로 Matrix 개체를 인수로 사용합니다. 결과적으로 함수는 실제로 ostream 개체와 Matrix 개체라는 두 가지 인수를 사용합니다.
이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.
친구 함수 사용: 친구 함수는 클래스의 멤버는 아니지만 해당 클래스의 private 및 protected 멤버에 액세스할 수 있습니다. 연산자<< 함수를 friend 함수로 사용하면 암시적 Matrix 객체 인수를 피할 수 있습니다.
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix) { [...] }
Matrix 객체를 참조로 전달: Matrix 객체를 다음과 같이 전달합니다. 참조를 사용하면 암시적 Matrix 객체 인수를 피할 수 있습니다.
std::ostream& operator<< (std::ostream& stream, const Matrix& matrix) const { [...] }
참고 두 번째 옵션에는 연산자<<가 필요합니다. 함수는 Matrix 객체를 수정하지 않으므로 const로 선언해야 합니다.
위 내용은 왜 내 매트릭스 클래스의 `의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!