생성자와 소멸자
생성자와 소멸자는 객체가 생성되거나 객체가 소멸될 때 자동적으로 호출되는 멤버 함수이다. 생성자 함수는 객체가 선언될 때 자동적으로 멤버 변수의 값을 초기화할 필요가 있기 때문에 존재한다. 소멸자는 보통 객체가 동적 메모리 등 자원을 할당 받았을 경우 객체가 소멸되기 전에 이를 제거하기 위해 사용된다. 생성자의 이름은 클래스 명과 동일한 이름으로 정의하며, 소멸자는 클래스 이름 앞에 칠다(~)기호를 붙여서 정의한다. 생성자와 소멸자를 정의하는 방법은 아래 예제와 같다.
예제
#include <iostream>
class POINT { // 클래스 이름 (point) 으로 정의 시작
private:
int x, y; // private 멤버 변수
public:
void SetPoint(int a, int b) { // 멤버 함수
x = a; // private 멤버 변수
y = b; // private 멤버 변수
}
POINT() { // 생성자 정의
x = 0;
y = 0;
printf("생성자 호출\n");
}
~POINT() { //소멸자 정의
printf("소멸자 호출\n");
}
int Get_x() // 멤버 변수 x 값을 가져옴
{
return x;
}
int Get_y() //멤버 변수 y 값을 가져옴
{
return y;
}
}; //클래스 정의 완료
int main(void)
{
POINT ob1;
printf("초기 x=%d y=%d\n", ob1.Get_x(), ob1.Get_y());
ob1.SetPoint(10, 20);
printf("현재 x=%d y=%d\n", ob1.Get_x(), ob1.Get_y());
return 0;
} //프로그램이 여기에서 끝나면 소멸자가 호출됨
실행 결과
생성자 호출
초기 x=0 y=0
현재 x=10 y=20
소멸자 호출
참고
1. 홍원기, Visual C++를 활용한 Windows Programming, 북스홀릭퍼블리싱, 2019.02.2
'C++ 기초 2' 카테고리의 다른 글
C++ friend 함수 (0) | 2024.01.30 |
---|---|
C++ this 포인터 (0) | 2024.01.29 |
C++ 동적 메모리 할당 및 제거 (new, delete) (0) | 2024.01.25 |
C++ 객체 포인터와 객체 배열 (0) | 2024.01.23 |
C++ 클래스의 정의 (0) | 2024.01.19 |