인프런 커뮤니티 질문&답변
퀴즈
사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?
코드 실행 속도를 빠르게 하기 위해
사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해
객체의 메모리 관리를 자동화하기 위해
클래스의 상속 관계를 정의하기 위해
답변 1
5
인수 있는 생성자는 말 그대로 생성자에 인수가 있는 걸 의미하고,
변환 생성자는 인자의 자료형을 명시적으로 알수 있는 상황에서 한 매개변수로 객체를 생성하는 방법입니다.
(변환 생성자가 인수 있는 생성자의 포함되어 있는 개념이라 보아도 무방하겠군요)
사실, 이는 '말'로 이해하기보다는 '코드'로 이해하는 것이 빠릅니다.
강의에서 (0:50분~)
Fraction frac(7);
doSomething(frac);
위 코드로도 정상적으로 생성이 되고,
doSomething(Fraction(7));
위 코드로도 생성이 되고,
doSomething(7);
위 코드로도 생성이 되었죠?
모두 질문자님의 말씀처럼 인수 있는 생성자라고도 볼 수 있지만,
마지막 예시는 변환 생성자의 예시입니다.
강의 내에서 doSomething의 인자는 Fraction이지만,
Fraction의 생성자는 int 하나로도 생성이 되기 때문에 7만으로도 생성이 되는 것이지요.
변환 생성자에 대한 다양한 예시는 아래 링크를 참고해보세요.
https://en.cppreference.com/w/cpp/language/converting_constructor
새해 복 많이 받으시기 바랍니다. 감사합니다.






감사합니다 새해 복 많이 받으세요