작성
·
308
1
밑줄 친 부분에서 "const" 가 없으면 오류 창에
" int& 형식(const 한정 형식아님)의 참조를 "Cents"형식의 값으로 초기화할 수 없습니다."
라고 뜨는데, 왜 그런걸까요??
강의에서 다룬 적이 있는 것 같아서 처음부터 다시 찾아봤는데,
발견을 하지 못하여 질문드립니다.
답변 2
3
<참조와 const> 강의를 복습해보시면 될 것 같습니다.
함수의 리턴값은 R-value 임을 알고 계실겁니다. cents 가 int 로 형변환 되야하기 때문에 형변환 연산자 오버로딩을 호출하게 되는데 형변환 연자 오버로딩은 m_nets 를 리턴합니다. 이 리턴값을 printint 함수의 매개변수인 value 가 참조해야 하는데 int & 이런 일반적인 참조 변수는 R-value 를 참조하지 못합니다. 반면 const int & 이런 const 참조 변수는 R-value, L-value 둘 다 참조가 가능하기 때문에 문제가 없었던 것입니다.
0