77. C++ 생성자, 소멸자

77. C++ 생성자 / 소멸자

1. 개요

1.1 문서 개요

이 문서는 C++의 생성자(Constructor)와 소멸자(Destructor)에 대해 설명합니다. 생성자와 소멸자는 객체의 생애주기에서 자동으로 호출되는 특수한 함수이며, 객체의 초기화 및 자원 해제를 위한 메커니즘을 제공합니다.

2. 내용

2.1 생성자

2.1.1 기본 생성자

매개변수가 없는 생성자는 기본 생성자라고 하며, 객체 생성 시 자동 호출됩니다.

class MyClass {
public:
    MyClass() {
        std::cout << "기본 생성자 호출됨" << std::endl;
    }
};

2.1.2 매개변수 생성자

생성자는 오버로딩이 가능하며, 매개변수를 통해 객체를 초기화할 수 있습니다.

class MyClass {
public:
    int value;
    MyClass(int v) : value(v) {
        std::cout << "매개변수 생성자 호출됨: " << value << std::endl;
    }
};

2.1.3 생성자 초기화 리스트

초기화 리스트는 멤버 초기화를 간결하게 처리할 수 있도록 지원합니다.

MyClass(int v) : value(v) {}

2.2 소멸자

2.2.1 기본 소멸자

객체가 스코프를 벗어나거나 delete 호출 시 자동으로 실행됩니다.

class MyClass {
public:
    ~MyClass() {
        std::cout << "소멸자 호출됨" << std::endl;
    }
};

2.2.2 동적 자원 해제에서의 역할

소멸자는 동적 할당된 자원의 누수를 방지하기 위해 자주 사용됩니다.

class MyClass {
    int* data;
public:
    MyClass() {
        data = new int[100];
    }
    ~MyClass() {
        delete[] data;
    }
};

3. 마무리

생성자와 소멸자는 객체 생명주기의 시작과 끝을 정의하는 중요한 함수입니다. 이를 적절히 정의하면 객체의 안정성과 자원 관리를 효과적으로 구현할 수 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤