■레퍼런스(Reference)
- 포인터의 불편함을 해결하기위해 등장. 1) 포인터는 널(NULL) 값이 포함될 수 있다. 2) 포인터는 간접참조를 하기위해 계속적으로 역참조 연산자를 사용해야한다.
void Swap(int* lhs, int* rhs)
{
// 포인터를 안전하게 사용하려면 항상 널 체크를 해줘야 한다.
if (lhs == NULL || rhs == NULL)
{
return;
}
// 간접 참조를 하려면 * 연산자를 사용해야 한다.
int temp = *lhs;
*lhs = *rhs;
*rhs = temp;
}
레퍼런스를 사용하면 아래와 같다.
void Swap(int& lhs, int& rhs)
{
// 레퍼런스는 널 값이 들어올 수 없기 때문에 널 체크를 하지 않아도 된다.
// 더 이상 * 연산자를 사용하지 않아도 된다.
int temp = lhs;
lhs = rhs;
rhs = temp;
}
int a, b;
Swap(&a, &b); // 포인터를 사용할 때는 &연산자를 사용하여야 하지만,
Swap(a, b); // 레퍼런스를 사용할 때는 & 연산자를 굳이 적지 않아도 된다.
레퍼런스를 사용할 땐, 꼭 초기화를 해주자!!! 아니면 컴파일 오류 남
int& ref = a;
[C++] 오버로딩(OverLoadding) (0) | 2022.05.31 |
---|---|
[C++] 클래스(Class) (0) | 2022.05.30 |
[C++] 객체 지향 프로그래밍이란? (0) | 2022.05.30 |
[C++] 별 찍기 (0) | 2022.04.20 |
[C++] 문법_for 문 (0) | 2022.04.18 |
댓글 영역