강의

멘토링

로드맵

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

빵이좋아님의 프로필 이미지
빵이좋아

작성한 질문수

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

9.12 이니셜라이져 리스트 initializer list

대입연산자와 생성자 질문

작성

·

286

0

IntArray int_array { 1, 2, 3, 4, 5 };

int_array = {6, 8, 10}; // 이 부분

주석 친 부분 디버깅 해보니까

IntArray(const std::initializer_list<int> &list): IntArray(list.size())

여기 생성자가 실행되고나서 대입연산자 오버로딩 부분이 실행되었어요 근데 { 6 ,8, 10 } 이게 왜 IntArray 클래스 생성자가 실행되는지..? 잘 모르겠어요

 

int_array = {6, 8, 10}; 이게

int_array = IntArray ({6, 8, 10} ); 이것과 같은 의미인건가요?

퀴즈

사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?

코드 실행 속도를 빠르게 하기 위해

사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해

객체의 메모리 관리를 자동화하기 위해

클래스의 상속 관계를 정의하기 위해

답변 1

0

initializer_list 인 { 6 ,8, 10 } 을 가지고 IntArray 객체를 만든 후 (즉, 저 생성자 실행) int_array 에 대입했다고 생각해주시면 될 것 같아요 !

빵이좋아님의 프로필 이미지
빵이좋아

작성한 질문수

질문하기