• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

안녕하세요 위임 생성자 강의를 듣는 도중에 궁금한 점이 생겼습니다.

23.01.31 23:39 작성 조회수 313

0

위임 생성자가 매개변수에 값을 입력 안했을 때, 클래스를 다시 참조해서 사용자가 입력한 값을 인스턴스에서 출력하는 것이잖아요?? 가령, Student(const string& name_in) : Student(0, name_in) {} 와 같이요.

그런데 잘 생각해보면 디폴트 매개변수 생성자도 매개변수에 미리 값을 설정해주고, 인스턴스 인자에 값을 안넣어주면 디폴트값을 출력하는 것도 같은 원리인데 차이점이 무엇인가요??

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2023.02.03

말씀하신 것처럼 비슷하게 동작하도록 기능을 만들 수는 있지만

용례에 따라 (어떨때 사용하는지에 따라) 달라지지 않을까 싶습니다.

위임 생성자는 동일 클래스 내의 또다른 생성자의 호출을 하고 싶을때

디폴트 매개변수 생성자는 매개변수의 기본값을 활용하고 싶을때

이렇게요.

 

Ambition님의 프로필

Ambition

질문자

2023.02.03

https://quuxplusone.github.io/blog/2020/04/18/default-function-arguments-are-the-devil/

제가 여기서 찾아봤는데요. 말씀하신 대로 동작의 차이는 없지만 위임 생성자가 나타나기 이전에는 디폴트 매개변수 생성자를 사용했다고 하네요. 시대에 따른 변화인 것 같습니다!

답변해주셔서 감사합니다 :)