소멸자 2

04. C++_얕은복사/깊은복사

객체를 복사한다는 것은 내용을 다른 객체로 복사하는 것을 의미하는데, 클래스의 객체가 다른 객체로 복사될 때는 보통 매개변수로 같은 클래스의 객체를 받아서 그 객체의 내용을 복사하여 새로운 객체를 생성하는 복사 생성자 (copy Constructor)에 의해 복사가 수행됩니다. 이 때, 복사 생성자가 어떻게 구현이 되었냐에 따라 객체 복사가 깊은 복사인지, 얕은 복사인지 결정되게 됩니다. 이번 포스팅에서는 깊은 복사, 얕은 복사에 대한 개념과 간단한 예제에 대해 알아보겠습니다.깊은 복사(Deep copy)깊은 복사는 객체를 복사할 때 해당 객체가 동적으로 할당된 메모리를 사용하고 있다면, 이 동적 메모리까지 새롭게 할당하고 복사하여 두 객체가 완전히 독립적인 데이터를 갖도록 하는 것입니다. 따라서 포인터..

C++ 2024.03.24

01. C++_Placement new

Placement new는 메모리를 할당하는 방식 중 하나인데, 이는 사용자가 이미 할당된 메모리 영역에 생성자를 명시적으로 호출하여 객체를 직접 생성하기 위한 방식입니다.이는 일반적인 new 키워드를 사용하여 동적으로 메모리를 할당하는 것과는 조금 다릅니다. 보통 new 키워드를 사용하여 동적으로 메모리를 할당하면 시스템은 메모리를 할당하고 (메모리할당&생성자호출), 생성자를 호출하여 객체를 초기화 합니다. 반면 Placement new는 이미 할당된 메모리 영역에 생성자를 호출하여 객체를 직접 생성합니다. (생성자만 호출)우선 기존의 new 키워드를 활용하여 동적할당을 하는 방법에 대해서 살펴보겠습니다.- new Point(1,2)#include #include class Point{ int x..

C++ 2024.03.11