Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 생성자와 소멸자 핵심 인터뷰 질문 총정리


C++ 면접에서 자주 출제되는 생성자(Constructor)와 소멸자(Destructor) 관련 핵심 질문들을 개념 설명과 예제 코드와 함께 정리했습니다.

생성자란 무엇인가?

생성자(Constructor)는 클래스와 이름이 같은 특수한 함수입니다. 생성자는 객체가 초기화되는 시점에 자동으로 호출됩니다. 생성자에는 다음과 같은 세 가지 종류가 있습니다.

  • 기본 생성자(Default Constructor)
  • 매개변수 생성자(Parameterized Constructor)
  • 복사 생성자(Copy Constructor)

문법

class cl_name{
    cl_name(){
        // 이곳이 생성자입니다.
    }
}

소멸자란 무엇인가?

소멸자(Destructor)는 클래스 이름 앞에 틸드(~) 기호가 붙은 이름을 가지는 클래스의 메서드입니다. 소멸자는 프로그램이 종료되거나 객체가 소멸되거나 스코프(범위)를 벗어날 때 호출됩니다.

문법

class cl_name{
    ~cl_name(){} // 소멸자
}

생성자의 용도는 무엇인가?

생성자는 클래스와 같은 이름을 가진 메서드로, new 키워드를 통해 객체가 생성될 때 해당 객체를 초기화하는 역할을 합니다.

객체가 생성되는 시점에 변수들이 메모리 공간에 할당되고, 지정된 기본값이 있다면 함께 초기화됩니다.

소멸자의 용도는 무엇인가?

소멸자는 클래스 이름 앞에 ~ 기호가 붙은 메서드입니다. 소멸자는 코드가 객체의 스코프를 벗어나거나 delete 키워드로 객체가 삭제될 때, 할당된 메모리를 해제하는 역할을 합니다.

객체가 삭제되면 소멸자가 호출되어, 객체 생성 시 할당되었던 모든 메모리 블록을 해제합니다.

C++에서 생성자의 실행 순서는 어떻게 되는가?

생성자는 클래스의 객체가 생성될 때 호출됩니다. 생성자가 호출되는 순서는 상속 계층 구조와 동일합니다. 즉, 먼저 기반(부모) 클래스의 생성자가 호출된 후, 파생(자식) 클래스의 생성자가 차례로 호출됩니다.

C++에서 소멸자의 실행 순서는 어떻게 되는가?

소멸자는 생성자와 정반대 순서로 호출되며, 클래스의 객체가 삭제될 때 실행됩니다. 소멸자의 호출 순서는 상속 계층 구조의 역순입니다. 즉, 먼저 자식 클래스의 객체가 소멸된 후, 부모 클래스의 객체가 차례로 소멸됩니다.

다른 생성자를 정의하면 기본 생성자도 자동으로 만들어지는가?

프로그래머가 명시적으로 생성자를 정의하지 않으면, 컴파일러가 자동으로 기본 생성자를 만들어 줍니다. 하지만 프로그래머가 생성자를 하나라도 직접 정의하면, 컴파일러는 더 이상 기본 생성자를 생성하지 않습니다.