임시객체와 관련하여 질문드립니다
강사님 복사 생성자에서 만들어지는 임시객체와 이동생성자에서 만들어지는 임시 객체의 차이를 아무리 테스트해도 모르겠읍니다. 두 생성간에 사용자가 처리하는 로직만 틀릴 뿐인지요?
아울러 선언으로 생성되는 클래스 인스턴스는 스택에 생성되고 new로 생성되는 인스턴스는 heap에 생성되는건지요?
답변 1
0
복사 생성자와 이동 생성자는 호출되는 시점이 다른 것입니다. 이는 언어의 문법에 해당하는 것입니다. 따라서 언제 이동 생성자가 호출되는 것인지에 관해 알아야 합니다. 우선 복사 생성자는
Test a;
Test b(a);
같은 상황에서 호출됩니다. 함수의 매개변수로 Test 클래스 인스턴스가 복사 생성되는 경우가 가장 대표적이라 하겠습니다.
이동 생성자는 Test function(int a); 처럼 반환 형식이 클래스인 경우를 대표적인 경우라 하겠습니다.
Test && a = function(10);
같은 코드를 생각하시면 되겠습니다.
그리고 클래스 인스턴스를 지역 변수이자 자동변수로 선언 및 정의하면 Stack 메모리를 사용하게 되며 new 연산을 통해 생성할 경우 Heap 메모리를 사용합니다. 참고하시기 바랍니다. 😄
인터페이스 상속과 추상 자료형 2:00 질문
0
50
1
13분 42초의 예제
0
52
2
네임스페이스 스코프 내에서 정의된 변수, 함수들이 위치하는 곳 질문
0
47
1
소멸자 가상함수 질문
0
55
2
이동생성자의 매개변수로 넘어가는 임시객체의 값 유지 관련하여 질문이 있습니다.
0
63
2
임시 객체 복사 생성자 질문드립니다
0
66
2
변수 바인딩에 대한 의문점
0
113
1
C++ 파일 구조 질문
0
128
1
빈 포인터에 멤버함수 호출
0
104
1
파생클래스에서 virtual함수를 선언에 대한 질문입니다.
0
116
2
순수 가상 클래스 선언과 일반 인트 변수의 선언과 다른가요?
0
137
2
안녕하세요. 이동의미론에 대해 제가 잘 이해했는지 궁금합니다.
0
132
1
인스턴스의 개념에 대해 int a(3), int(5) 예시를 바탕으로한 질문입니다.
0
189
2
식별자 검색 순서 관련 namespace 생략 관련 오류에 관한 질문
0
175
1
마지막 주소록 예제 c 파일 한글 깨짐 현상
0
190
1
nullprt vs null
0
153
2
쓸데없지만 질문드리고싶습니다
0
181
1
복사 생성자 질문 드립니다.
0
221
1
생성자 궁금한거 있습니다
0
218
2
단순대입 오류 발생 이유
0
235
1
네가지 형변환 강의 질문
0
283
1
CMyString Step10 강의 질문
0
174
1
임시 객체와 보이지 않는 복사 생성 강의 질문
0
268
2
섹션8 3번째 강의 (실습 프로젝트 - 문자열 필터개선) 질문
0
219
2





