참조 형식은 함수 반환 값
참조 형식을 반환 하도록 함수를 선언할 수 있습니다.이러한 선언을 하는 두 가지가 있습니다.
반환 되는 정보에 대 한 참조를 반환 합니다. 복사본을 반환 하는 보다 더 효율적입니다는 충분히 큰 개체입니다.
형식 함수는 l-값 이어야 합니다.
큰 개체를 전달 하는 것이 더 효율적일 수 있습니다 것 처럼 에 함수 참조로도 수 수 대형 개체를 반환 하는 것이 더 효율적 에서 함수에서 참조 합니다.참조 리턴 프로토콜 개체를 반환 하기 전에 임시 위치로 복사 필요가 없습니다.
함수는 l-값으로 계산 되어야 하는 경우에 반환이 참조 형식이 유용할 수 있습니다.특히 대입 연산자가이 범주에 포함 하는 대부분의 오버 로드 된 연산자입니다.Overloaded 연산자에 적용 됩니다 오버 로드 연산자.
예제
고려는 Point 예:
// refType_function_returns.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class Point
{
public:
// Define "accessor" functions as
// reference types.
unsigned& x();
unsigned& y();
private:
unsigned obj_x;
unsigned obj_y;
};
unsigned& Point :: x()
{
return obj_x;
}
unsigned& Point :: y()
{
return obj_y;
}
int main()
{
Point ThePoint;
// Use x() and y() as l-values.
ThePoint.x() = 7;
ThePoint.y() = 9;
// Use x() and y() as r-values.
cout << "x = " << ThePoint.x() << "\n"
<< "y = " << ThePoint.y() << "\n";
}
Output
x = 7
y = 9
표시 함수 x 및 y 참조 형식을 반환 하도록 선언 됩니다.할당 문의 양쪽에 이러한 함수를 사용할 수 있습니다.
참조 형식의 선언에는 다음과 같은 경우를 제외 하 고 이니셜라이저를 포함 해야 합니다.
명시적 extern 선언
클래스 멤버 선언
클래스 내에서 선언
함수의 반환 형식 또는 함수 인수 선언