DAY 6 클래스 개념 생성자와 소멸자

끄적끄적·2024년 12월 23일

클래스란?

  • 독립되고 주어진 역할을 수행할 수 있는 객체

생성자

  • 클래스가 멤버를 초기화하는 방법을 사용자 지정하거나 클래스의 개체를 만들 때 함수를 호출하려면 생성자를 정의한다.
  • 생성자는 클래스와 같은 이름을 사용하며 반환 값이 없다. 다양한 방법으로 초기화를 사용자 지정하기 위해 필요한 만큼 오버로드된 생성자를 정의할 수 있다.


클래스의 인스턴스를 선언하면 컴파일러는 오버로드 확인 규칙에 따라 호출할 생성자를 선택한다.

소멸자

개체가 범위를 벗어나거나 호출에 delete[]에 의해 명시적으로 제거될 때 자동으로 호출 delete 되는 멤버 함수.

소멸자 선언

클래스와 이름이 같지만 물결표(~)가 앞에 붙어 있는 함수다.

소멸자 선언 규칙

  • 인수를 가지지 않는다.
  • 반환값이 없지만 void 형으로 선언하지 않는다.
  • 소멸자는 단 한가지만 가질 수 있다.
  • 소멸자는 const,static,volatile 등 으로 선언할 수 없지만 const,static,volatile으로 선언된 개채의 소멸을 위해 호출 할 수 있다.

소멸자 사용 (다음 이벤트 중 하나가 발생하면 소멸자가 호출)

  • 객체의 수명이 끝나면 자동 호출
  • delete
  • 프로그램이 종료되고 전역 또는 정적 개체가 존재할때.
  • 소멸자 함수의 정규화된 이름을 사용하여 명시적으로 호출할때.

소멸 순서

  • 가상이 아닌 기본 클래스에 대한 소멸자는 선언의 역순으로 호출된다.

0개의 댓글