• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

printInt 함수에서

21.03.10 11:41 작성 조회수 236

1

밑줄 친 부분에서 "const" 가 없으면 오류 창에

" int& 형식(const 한정 형식아님)의 참조를 "Cents"형식의 값으로 초기화할 수 없습니다."

라고 뜨는데, 왜 그런걸까요??

강의에서 다룬 적이 있는 것 같아서 처음부터 다시 찾아봤는데, 

발견을 하지 못하여 질문드립니다.

답변 2

·

답변을 작성해보세요.

3

안소님의 프로필

안소

2021.03.10

<참조와 const> 강의를 복습해보시면 될 것 같습니다.

함수의 리턴값은 R-value 임을 알고 계실겁니다. cents 가 int 로 형변환 되야하기 때문에 형변환 연산자 오버로딩을 호출하게 되는데 형변환 연자 오버로딩은 m_nets 를 리턴합니다. 이 리턴값을 printint 함수의 매개변수인 value 가 참조해야 하는데 int & 이런 일반적인 참조 변수는 R-value 를 참조하지 못합니다. 반면 const int & 이런 const 참조 변수는 R-value, L-value 둘 다 참조가 가능하기 때문에 문제가 없었던 것입니다.

0

wlsdnr929님의 프로필

wlsdnr929

질문자

2021.03.10

완전히 이해가 되었습니다. 말씀해주신 강의 다시 한번 보겠습니다.

감사합니다~~!!