• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

23.08.03 15:16 작성 조회수 237

1

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

 

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

int main 함수에서

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

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

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

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

 

감사합니다.

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.08.04

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

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

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

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

이이님의 프로필

이이

질문자

2023.08.08

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