1 minute read

C++ 정리 5(클래스와 객체(3))

이번 시간에는 소멸자를 정리해보도록 하겠습니다.

생성자는 객체가 생성될 때 실행되는 멤버 함수였고 소멸자는 그럼 이름만 보았을 때 어떨 때 실행되는 함수 일까요?

네, 소멸자는 객체가 소멸될때 자동으로 호출되는 멤버 함수 입니다.

소멸자의 특징은 다음과 같습니다.

  1. 소멸자의 목적은 객체가 사라질 때 필요한 마무리 작업을 위함입니다.
  2. 소멸자의 이름은 클래스 이름 앞에 ~를 붙입니다.
  3. 소멸자는 리턴 타입이 없으며 어떤 값도 리턴해서도 안 됩니다.
  4. 소멸자는 오직 한 개만 존재하며 매개 변수를 가지지 않습니다.
  5. 소멸자가 선언되어 있지 않으면 기본 소멸자가 자동으로 생성됩니다.

다음 코드를 보면서 소멸자를 어떻게 사용하는지 자세히 보겠습니다.


소멸자 실행

​ int main(){

​ Circle donut;

​ Circle pizza(30);

​ return 0;

​ }

이러한 코드가 있다고 생각해봅시다.

소멸자는 어디서 실행이 될까요?

소멸자는 return 0; 문이 실행되면 생성된 반대순으로 즉 pizza, donut 순으로 소멸자가 실행이 됩니다.

다음은 소멸자 예시 코드입니다.

#include

using namespace std;

class Circle {

public:

int radius;

Circle();

Circle(int r);

~Circle();// 소멸자 선언

double getArea();

};

Circle::Circle() {

radius = 1;

cout « “반지름 “ « radius « ” 원 생성” « endl;

}

Circle::Circle(int r) {

radius = r;

cout « “반지름” « radius « ” 원 생성” « endl;

}

Circle::~Circle() {

cout « “반지름 “ « radius « ” 원 소멸” « endl;

}

double Circle::getArea() {

return 3.14* radius *radius;

}

int main() {

Circle donu;

Circle pizza(30);

return 0;

}

여기 까지 소멸자 정리를 끝내고 다음으로는 접근 지정자에 대해서 정리해보겠습니다.


접근 지정자

전에도 말했듯이 접근 지정자에는 3가지 종류가 있습니다.

  1. private
  2. public
  3. protected

클래스의 디폴트 값은 private입니다. private는 클래스 내의 멤버 함수들에게만 접근이 가능하고 클래스 외부에서는 절대 접근 할 수 없습니다.

public 은 클래스 내부 외부 모두 접근이 가능하고 모든 함수에서 접근이 가능합니다.

protected 클래스 내의 멤버함수와 이 클래스를 상속받은 자식 클래스의 멤버 함수 들만 접근이 가능합니다.

여기서 주의 할점은 생성자는 public 접근 지정자를 주어야 한다. 왜냐하면 생성자는 호출 되어야 하기 때문입니다.

Updated: