Application/기초

[기초] C++ 생성자와 소멸자 (new, delete)

devsalix 2024. 4. 10. 07:43
728x90

 

C++에서 생성자와 소멸자는 객체의 초기화와 정리 작업에 중요한 역할을 합니다.

또한, 'new'와 'delete' 연산자는 동적으로 메모리를 할당하고 해제하는 데 사용됩니다.

이러한 요소들을 함께 다루는 것은 C++ 프로그래밍에서 중요한 부분입니다.

 


 

생성자와 소멸자

 

생성자는 객체가 생성될 때 호출되며, 멤버 변수를 초기화하거나 다른 초기화 작업을 수행합니다.

소멸자는 객체가 소멸될 때 호출되며, 메모리의 해제나 리소스의 정리 작업을 수행합니다.

 

#include <iostream>

class MyClass {
public:
    // 생성자
    MyClass() {
        std::cout << "생성자 호출\n";
    }

    // 소멸자
    ~MyClass() {
        std::cout << "소멸자 호출\n";
    }
};

int main() {
    MyClass obj; // 생성자 호출
    // obj가 블록을 벗어나면 소멸자가 호출됨
    return 0;
}

 

 

'new'와 'delete' 연산자

 

'new' 연산자는 동적으로 메모리를 할당하고 해당 객체의 생성자를 호출합니다.

'delete' 연산자는 동적으로 할당된 메모리를 해제하고 해당 객체의 소멸자를 호출합니다.

 

#include <iostream>

class MyClass {
public:
    // 생성자
    MyClass() {
        std::cout << "생성자 호출\n";
    }

    // 소멸자
    ~MyClass() {
        std::cout << "소멸자 호출\n";
    }
};

int main() {
    MyClass* objPtr = new MyClass(); // 생성자 호출
    delete objPtr; // 소멸자 호출 및 메모리 해제
    return 0;
}

 

위의 예제에서 'new' 연산자를 사용하여 동적으로 객체를 생성하고,

'delete' 연산자를 사용하여 해당 객체를 소멸시킵니다.

이 과정에서 생성자와 소멸자가 호출되는 것을 확인할 수 있습니다.

 

마무리

 

생성자와 소멸자는 객체의 초기화와 정리를 담당하며,

'new'와 'delete' 연산자는 동적으로 메모리를 관리하는 데 사용됩니다.

이러한 기능들을 적절히 활용하여 메모리 누수를 방지하고 안정적인 프로그램을 개발할 수 있습니다.

 

 


제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

 

 
728x90
반응형