Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 소멸자

<시간/>

C++의 소멸자는 객체를 삭제하는 클래스의 멤버 함수입니다. 함수가 종료될 때, 프로그램이 종료될 때, 삭제 변수가 호출될 때와 같이 클래스 객체가 범위를 벗어날 때 호출됩니다.

소멸자는 인수를 취하지 않고 아무 것도 반환하지 않는다는 점에서 일반 멤버 함수와 다릅니다. 또한 소멸자는 클래스와 이름이 같으며 이름 앞에 물결표(~)가 붙습니다.

C++에서 소멸자를 시연하는 프로그램은 다음과 같습니다.

예시

#include<iostream>
using namespace std;
class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      cout<<"Inside Constructor"<<endl;
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
   ~Demo() {
      cout<<"Inside Destructor";
   }
};
int main() {
   Demo obj1(10, 20);
   obj1.display();
   return 0;
}

출력

Inside Constructor
num1 = 10
num2 = 20
Inside Destructor

위의 프로그램에서 Demo 클래스는 n1과 n2가 제공하는 값으로 num1과 num2를 초기화하는 매개변수화된 생성자를 포함합니다. 또한 num1과 num2의 값을 출력하는 display() 함수도 포함되어 있습니다. Demo에는 클래스 개체의 범위가 종료될 때 호출되는 소멸자가 있습니다. 이에 대한 코드 스니펫은 다음과 같습니다.

class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      cout<<"Inside Constructor"<<endl;
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
   ~Demo() {
      cout<<"Inside Destructor";
   }
};

main() 함수는 Demo 클래스 유형의 객체에 대한 객체 정의를 포함합니다. 그런 다음 display() 함수가 호출됩니다. 이것은 아래에 나와 있습니다.

Demo obj1(10, 20);
obj1.display();