강의

멘토링

로드맵

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wlsdnr9291825
wlsdnr9291825

câu hỏi đã được viết

Học C++ cùng Hong Jeong-mo

9.8 Chuyển đổi kiểu quá tải

printInt 함수에서

Viết

·

408

1

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

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

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

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

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

C++

Quiz

66% người trả lời sai. Hãy thử ngay!

사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?

코드 실행 속도를 빠르게 하기 위해

사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해

객체의 메모리 관리를 자동화하기 위해

클래스의 상속 관계를 정의하기 위해

Câu trả lời 2

3

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

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

0

wlsdnr929님의 프로필 이미지
wlsdnr929
Người đặt câu hỏi

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

감사합니다~~!!

Hình ảnh hồ sơ của wlsdnr9291825
wlsdnr9291825

câu hỏi đã được viết

Đặt câu hỏi