[C++] 오른값 참조

Yoo Hyung Joo ·2023년 11월 28일
0

오른값 참조

오늘값 참조란?
C++에는 lValue와 rValue라는 개념이 있다.

lValue: 해당 줄에서 사라지지 않고 계속 지속(사용)되는 객체 (주소, 문자열 리터럴 상수(define))

rValue: 해당 줄에서 사용되고 사라지는 객체 (상수, 임시객체, 주소가 없는 객체,리터럴 상수 ++i, i++ 등)

ex)

int a = 0;
int *lValue = a++;

여기서 a++은 rValue라고 볼 수 있습니다.

void AddForce(Vec2& direction, float power);

AddForce(Vec2(0.f,0.f,0.f);

이러한 경우 AddForce에 들어가는 매개변수는 오른값이기 때문에 참조를 할 수 없다. 그렇기 때문에 새로운 객체를 만들어서 넘기거나 오른값 참조 연산자를 사용해야한다.

오른값 참조 연산자
오른값 참조 연산자는 &이 아닌 &&을 사용한다.

ex)

void AddForce(Vec2&& direction, float power);

AddForce(Vec2(0.f,0.f,0.f);

이러한 방식으로 오른값 참조 연산자를 사용하게 되면 저러한 방식으로 함수를 사용할 수 있다.

profile
성장을 멈추지 않는 개발자

0개의 댓글