본문 바로가기

C++ 기초 2

C++ 생성자와 소멸자

생성자와 소멸자

   생성자와 소멸자는 객체가 생성되거나 객체가 소멸될 때 자동적으로 호출되는 멤버 함수이다. 생성자 함수는 객체가 선언될 때 자동적으로 멤버 변수의 값을 초기화할 필요가 있기 때문에 존재한다. 소멸자는 보통 객체가 동적 메모리 등 자원을 할당 받았을 경우 객체가 소멸되기 전에 이를 제거하기 위해 사용된다. 생성자의 이름은 클래스 명과 동일한 이름으로 정의하며, 소멸자는 클래스 이름 앞에 칠다(~)기호를 붙여서 정의한다. 생성자와 소멸자를 정의하는 방법은 아래 예제와 같다.  

 

예제
#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