강의

멘토링

로드맵

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

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

작성한 질문수

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

8.3 생성자 Constructors

생성자의 매개변수 유무와 괄호 유무

작성

·

352

1

안녕하세요 16분 경 해당 캡처사진 코드 관련 질문드립니다.

 

18번째 줄의 생성자의 매개변수를 둘다 초기화 하시고

int main 함수에서

Fraction one_third (); 라고 쓰면 안된다고 하셨습니다

'파라미터(매개변수)가 없기 때문에 괄호를 삭제해주어야한다' 라고 하셨는데

이 경우는 생성자의 매개변수가 없는 것이 아니라 보내는 인자값이 없는 것 아닌가요?

생성자에는 매개변수가 2개가 존재하는데..헷갈리네요

 

감사합니다.

답변 1

3

안녕하세요, 답변 도우미 Soobak 입니다.

Fraction(const int& num_in = 1, const int& den_in = 1) 에서, = 1매개 변수의 기본 값을 설정해주었기 때문입니다.

즉, 해당 생성자에 아무런 인수를 넣어주지 않고 호출을 하게되면, m_numeratorm_denominator 은 기본값으로 1 을 갖게 되며, 마치 매개 변수가 없는 생성자와 동일한 형태로 호출이 가능하게 됩니다.

따라서, Fraction one_third() 가 아닌 Fraction one_third; 와 같이 생성자를 호출해주어야 하는 것입니다.

이이님의 프로필 이미지
이이
질문자

친절한 답변 감사드립니다.

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

작성한 질문수

질문하기