강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이준우님의 프로필 이미지
이준우

작성한 질문수

홍정모의 따라하며 배우는 C++

7.7 함수 오버로딩

강의 12분 30초 질문있습니다.

작성

·

211

1

왜 여기서 오류가 나는건가요? unsigned int 는 양의 정수 표현 아닌가요? 3.14159의 자료형은 무조건 float, double의 자료형에 속하는데, 왜 compiler가 둘 중에 하나를 못 정하는지 이해가 안됩니다.

답변 1

1

안녕하세요~

3.14159f 는 void print(int) 도, void print(float) 도 둘 다 받을 수 있습니다.

그래서 어떤 함수를 호출해야할지 모호하기 때문에 에러가 발생한 것입니다.

int i = 3.14159f; 

이게 문법적으로 가능하다는 것을 생각해보면 이해되실거에요!

i 엔 소수점이 버려지고 3 만 저장되겠죠.

마찬가지로 3.14159f 파라미터도 int 매개변수에 전달될 수 있기 때문에 (소수점은 버려지겠지만)

모호한 것입니다. 두 함수 모두 이 파라미터를 받을 수 있기 때문에요

이준우님의 프로필 이미지
이준우

작성한 질문수

질문하기