본문 바로가기
언어/C++

(C++)참조자 const

by 흥부와놀자 2020. 10. 6.

참조자는 L-value와 R-value참조자가 있다. 초기값으로 각 value에 맞는 값을 넣어주면 되는데 const키워드가 붙은 참조자에 대해 알아보자.

 

1. const int&

const int& a 나 int const& a나 같은 의미이다. 둘다 참조자 자체를 상수화시키는게 아니라 상수형 int를 참조하는 의미이다.

const int를 참조하기 때문에 (초기화되는 변수가 꼭 const일필요는 없다.) 해당 변수의 별명격인 참조자의 값을 다른값으로 바꿀수 없다. 또한 초기값으로 항상 변수가 와야했던것과 달리 const이기에 상수로 초기화 해 줄 수 있다.

 

 

2. int& const

참조자 자체를 상수화 시킨다. 하지만 생각해보면 참조자 자체가 const와 동격이 된다.

L-value참조자의 경우 처음 참조한 변수는 바뀌지 않는다. 

헷갈릴수 있는 부분이 저렇게 참조자에 다른 변수를 대입한다면 아예 다른 변수를 참조하는게 아닐까하고 생각할수 있지만 참조하는 변수는 바뀌는게 아니다. 해당 변수의 값만 바뀌는것이다. 즉 참조자 자체가 const이기 때문에 또 const를 붙이는건 컴파일러에 따라 Warning을 뱉거나 중복 const 사용으로 에러를 뱉을 수 있다.

 

'언어 > C++' 카테고리의 다른 글

(C++)연관컨테이너(set, multiset, map, multimap)  (0) 2020.09.22
(C++)List  (0) 2020.09.16
(C++)Vector / Deque  (0) 2020.09.14
(C++)STL  (0) 2020.09.14
(C++) 템플릿  (0) 2020.09.14