[c++] 객체 라이프사이클

C++에서 객체의 라이프사이클은 객체가 생성되는 시점부터 소멸될 때까지의 과정을 의미합니다. 객체의 라이프사이클을 이해하는 것은 프로그램의 동작 및 메모리 관리에 중요한 역할을 합니다.

객체의 생성과 소멸

C++에서 객체는 생성될 때 생성자(constructor) 가 호출되고, 소멸될 때 소멸자(destructor) 가 호출됩니다. 생성자는 객체가 만들어질 때 필요한 초기화 작업을 수행하고, 소멸자는 객체가 소멸될 때 정리 작업을 수행합니다.

class MyClass {
public:
    // 생성자
    MyClass() {
        // 객체 생성 시 초기화 작업 수행
    }
    
    // 소멸자
    ~MyClass() {
        // 객체 소멸 시 정리 작업 수행
    }
};

객체의 수명

객체의 수명은 생성된 시점부터 소멸될 때까지를 나타냅니다. 객체가 생성되는 시점은 변수가 선언되거나 동적으로 할당될 때입니다. 객체가 소멸하는 시점은 변수가 범위를 벗어나거나 delete 키워드로 삭제될 때입니다.

임시 객체

C++에서 임시 객체는 표현식의 결과로 생성되는 객체를 말합니다. 임시 객체는 해당 표현식이 종료되는 시점에서 자동으로 소멸됩니다. 임시 객체를 활용하여 코드를 간결하고 효율적으로 작성할 수 있습니다.

객체의 복사와 이동

객체의 라이프사이클은 복사 생성자와 이동 생성자가 호출되는 시점에 영향을 받습니다. 복사 생성자(copy constructor) 는 객체가 다른 객체로부터 복사될 때 호출되고, 이동 생성자(move constructor) 는 객체가 다른 객체로부터 이동될 때 호출됩니다.

C++11부터는 이동 생성자를 사용하여 객체의 이동을 최적화할 수 있어, 객체의 라이프사이클과 메모리 관리에 있어 개선된 기능을 제공합니다.

C++에서 객체의 라이프사이클을 이해하는 것은 프로그램의 안정성 및 성능을 높이는데 도움이 됩니다.

참고문헌: https://en.cppreference.com/w/cpp/language/object_lifetime