본문 바로가기
[ CODING STUDY ]/》C++ 공부

C++ 5장 [클래스3]

by MRG 2022. 10. 7.
728x90
반응형

▣ 안녕하세요. 이번장에서는 클래스 3번째 시간으로 소멸자를 공부해보도록 하겠습니다.

 

▣ 소멸자는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스 멤버 함수를 의미합니다.

저번장을 이어서 복습하면 생성자는 객체가 생성되었을 때 소멸자는 소멸되었을 때 호출하는 멤버 함수들입니다.

소멸자를 만들려면 클래스 이름 앞에 ~ 기호를 붙여야 합니다.
또 소멸자는 한 개만 존재해야 합니다. 
만약 소멸자가 선언되지 않으면 기본 소멸자가 자동으로 생성됩니다.
그리고 소멸자는 리턴 타입이 없습니다. 생성자처럼 반환형이 없다는 의미입니다.

소멸자의 목적은 마무리 작업을 할 때 사용합니다.

그럼 코드를 작성하며 공부해보겠습니다.

 

 

 

▣ 소멸자를 생성하려면 ~Calculator() 코드에서처럼 클래스 앞에 ~ 기호를 넣으시면 됩니다. 

그리고 생성자와 소멸자 함수 호출 확인을 위해 출력 코드를 생성자, 소멸자 멤버 함수에 넣었습니다. 

메인 함수에서 객체를 정의하고 디버그를 해보겠습니다.

 

▣ 그럼 생성자 호출 후에 클래스가 끝나고 소멸자가 호출되는 걸 확인할 수 있습니다. 

 

▣ 이번에는 전역 객체와 지역 객체에 대해 공부해보겠습니다. 

c언어의 변수와 동일하게 전역 변수, 지역변수를 생각하시면 됩니다. 

 

 

▣ 지역 객체와 전역 객체 생성자, 소멸자 함수 호출 순서를 구분하기 위해 생성자에 매개변수를 추가했습니다.

그리고 생성자와 소멸자 멤버 함수 모두에게 변수를 출력하는 코드를 넣었습니다.

이제 전역 객체는 함수 밖에 정의해주시고 지역 객체는 함수 안에 정의를 해주시면 됩니다.

지역변수 전역변수 만들 때와 동일한 방법입니다.

코드를 다 작성하셨으면 디버그를 해보겠습니다.

그럼 전역 객체에 생성자가 먼저 호출되고 지역 생성자가 나중에 호출되는 걸 확인할 수 있고,

이와 반대로 소멸자는 지역 객체가 먼저 호출되고 전역 객체가 나중에 호출되는 걸 확인할 수 있습니다.

지역변수와 전역 변수처럼 전역 객체는 프로그램이 끝나면 소멸되고 

지역 객체는 클래스가 끝나면 소멸됩니다.

클래스가 모두 끝나고 메인 함수를 끝으로 프로그램이 종료되기 때문에

전역 소멸자가 나중에 호출되는 걸 확인할 수 있습니다.

직접 지역 객체와 전역 객체를 여러 개 만들어 프로그램에 흐름을 파악해보세요. 

728x90
반응형

'[ CODING STUDY ] > 》C++ 공부' 카테고리의 다른 글

C++ 7장 [인라인 함수]  (0) 2022.10.13
C++ 6장 [클래스4]  (0) 2022.10.12
C++ 4장 [클래스2]  (0) 2022.10.06
C++ 3장 [클래스1]  (0) 2022.09.30
C++ 2장 [using 지시어]  (0) 2022.08.24

댓글