생성자와 소멸자
생성자와 소멸자
- 생성자와 소멸자는 객체 지향 프로그래밍에서 클래스의 특별한 종류의 함수다
- 생성자는 객체가 생성될 때 호출되는 함수로, 객체의 초기화를 담당한다. 일반적으로 클래스와 동일한 이름을 가지고 있으며, 객체가 생성될 때 자동으로 호출되어 멤버 변수의 초기값을 설정하거나 다른 초기화 작업을 수행한다.
- 소멸자는 객체가 소멸될 때 호출되는 함수로, 객체의 리소스 해제나 정리 작업을 담당한다. 일반적으로 "~" 기호와 클래스 이름을 가지는 함수로 정의되며, 객체가 소멸될 때 자동으로 호출된다.
- 생성자와 소멸자는 객체의 생명 주기와 관련된 중요한 역할을 수행하므로, 적절하게 정의되고 사용되어야 합니다.
생성자(C++)
-
생성자의 이름은 클래스명과 같다.
-
클래스의 객체가 생성될 때마다 자동으로 호출된다.
-
보통 객체가 메모리에 할당될 때 멤버변수의 초기화를 담당한다.
-
리턴형을 쓰지 않는다.
- 리턴값이 존재하지 않으며 void형을 지정해도 안된다.
- C/C++언어에서는 리턴값을 생략하면 int형인데 생성자는 예외다.
-
생성되는 객체마다 초기화 값이 다를 수 있으므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다.
-
매개변수는 달라야한다.
-
객체가 생기면서 자동 호출되며, 사용자가 호출할 수는 없다.
-
생성자가 반드시 있어야 하는 것은 아니지만 메모리를 초기화 한다는 의미에서 있는 것이 좋다.
C++ 초기화 관련글은 작성후 링크 예정
소멸자(C++)
- 클래스의 객체가 소멸될 때 자동으로 호출된다.
- 소멸자의 이름은 클래스명과 같고, 앞에 ~(tilde)를 붙인다.
- 클래스명이 Dog라면 소멸자 이름은 ~Dog()
- 하나의 클래스에 유일하다.
- 생성자는 중첩이 가능하지만 소멸자 중첩은 불가능하다.
- 리턴형과 매개변수가 없다.
- 리턴값이 존재하지 않으며 void형을 지정해도 안된다.
- 사용자가 직접 호출할 수는 없다.
~클래스명(){실행문;}