언어/Basic C++

[Basic C++] #24_우측 값 참조, 대입 연산의 좌항과 우항

Hardii2 2022. 5. 14. 19:19

#1. 개념

 

1. 우측 값

int a;

a = 5;	// a는 좌항, 5는 우항
좌항 혹은 좌측 값은 그 주소를 얻을 수 있는 이름을 가진 대상을 말합니다. 반대로, 우항 혹은 우측 값은 상수 값 혹은 임시 객체를 의미합니다.

 


 

#2. 코드

// 1. 좌측값 참조형 파라미터
void incr (int& val) { ++val; }

int a = 10, b = 11;

incr(a);
incr(b);

// 2. 우측값 참조형 파라미터
void incr (int&& val) { ++val; }

incr(5);		// 상수값
incr(a+b);		// 임시 변수
incr(std::Move(a));	// std::Move() : 좌항 변수 -> 우측값 참조로 변환
C++에서 &&를 활용해 우측 값 참조가 가능합니다. 특히, move() 함수를 통해 좌항 변수를 우측 값 참조로 변환하는 것 또한 가능합니다. 이때, move() 함수를 활용할 경우 원본의 메모리 영역에 대한 소유권이 이전됩니다. 그리고, 원본 변수는 여전히 유효하지만 불특정 상태가 됩니다.