복사 할당 연산자: 왜 참조를 반환 유형으로 사용하나요?
복사 할당 연산자에서 참조 또는 const 참조를 반환하는 것은 씨. 이렇게 하면 효율적인 개체 할당이 보장되고 불필요한 복사를 방지할 수 있습니다. 복사본 반환과 달리 참조 반환을 사용하면 객체 간에 값을 직접 복사하여 작업을 최소화할 수 있습니다.
다음 코드 조각을 고려하세요.
A a1(param); A a2 = a1; A a3; a3 = a2; // Assignment operator
연산자=를 다음과 같이 정의합니다.
A A::operator=(const A& a) { if (this == &a) return *this; param = a.param; return *this; }
참조를 반환하면 모든 할당에 대해 생성자와 소멸자를 호출하는 오버헤드가 제거됩니다. 대신 단순히 메모리의 값을 업데이트합니다.
반대로 복사본을 반환하려면 새 개체를 만들고, 할당된 개체에서 값을 복사하고, 각 할당 후에 임시 복사본을 삭제해야 합니다. 이렇게 낭비되는 오버헤드는 a = b = c 체인과 같은 복잡한 할당에서 특히 두드러집니다.
참조를 반환하여 복사 할당 연산자는 다음과 같습니다.
위 내용은 C의 복사 할당 연산자에서 참조를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!