인프런 커뮤니티 질문&답변
대입연산자와 생성자 질문
작성
·
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 에 대입했다고 생각해주시면 될 것 같아요 !





