루리코딩 세상

생성자(Constructor) : 이동 생성자 본문

이론

생성자(Constructor) : 이동 생성자

루리딩 2025. 6. 4. 21:41

글을 쓰기 앞서 생성자에 대한 정의와 특징에 대해서 정리하면 다음과 같다.

생성자 (Constructor)는 OOP에서 객체를 초기화(Dlelete, Releas) 하는 특별한 메서드이다.

객체가 생성될 때 자동으로 호출하여, 객체의 멤버 변수를 초기화 하거나 필요한 리소스를 할당하는 역할을 한다.

 

생성자의 특징은

-" class "와 동일한 이름으로 정의한다.

- 반환값이 없다. "void"도 사용하지 않는다.

- 객체가 생성될 때 자동으로 호출된다.

- 메서드처럼 매개변수를 가질 수 없으며, 매개변수를 통해 외부로부터 값을 받아 객체를 초기화 할 수 있다?

- 클래스 내에 정의되며, 생성자의 종류에 따라 기본 생성자

(매개변수 없는 생성자)와 매개변수를 갖는 생성자가 있을 수 있다.


그렇다면 이동 생성자는 어떻게, 왜 사용할까?

이동 생성자를 사용하게되면 rvalue 객체가 소유한 리소스를 복사하지 않고 lvalue로 이동할 수 있다.


Rvalue 참조 선언자 : &&


일반 함수 및 연산자를 오버로드하여 체계 이동에 활용이 가능한 참조 선언자. Rvalue

 

이동 생성자(Move Constructor)

"복사"를 통한 객체를 초기화 하는 것이 아닌, 이동 생성을 통해 객체를 초기화하는 생성자이다.

기존의 맴버함수의 리소스를 가져오고, 가져온 메모리 주소값은 비워둔다.

불필요한 복사 연산을 줄여 성능이 향상되는 효과를 갖고 있다.

 


REF

https://learn.microsoft.com/ko-kr/cpp/cpp/move-constructors-and-move-assignment-operators-cpp?view=msvc-170

 

방법: 이동 생성자 정의 및 할당 연산자 이동(C++)

자세한 정보: 생성자 이동 및 할당 연산자 이동(C++)

learn.microsoft.com

https://modoocode.com/227

 

'이론' 카테고리의 다른 글

BSD (Berkeley Software Distribution)  (0) 2025.06.11
가상화 (假像化, virtualization)  (0) 2025.06.03
인스턴스(Instance)란?  (0) 2025.05.30
절대 경로와 상대 경로의 차이점  (1) 2025.05.28
디렉토리(Directory)란?  (1) 2025.05.28