본문 바로가기
[ C++ ]/- C++ 문법공부

C++ 12장 [함수객체]

by MRG 2022. 11. 3.
728x90
반응형

▣ 안녕하세요.

이번장에서는 함수를 호출할 때 매개변수를 객체로 전달하는 코드를 공부해보도록 하겠습니다.

 

▣ 클래스의 소멸자와 생성자를 각각 지정해주고 메인 함수에서 객체를 정의한 다음에 디버그를 하면 이렇게 

클래스 생성 시 생성자와 소멸자가 호출되는 걸 확인할 수 있습니다. 

이번에는 클래스 멤버함수가 아닌 따로

함수를 만들고 그 함수의 매개변수에 클래스 객체를 전달하는 코드를 작성해보겠습니다.

 

728x90

▣ 코드를 작성했다면 이제 코드를 살펴보겠습니다.

sum(cal) 코드를 살펴보면 sum()이라는 함수에 매개변수에 cal 클래스 객체를 전달했습니다.

그럼 클래스가 전달됩니다. 

여기서 중요한 건 그 클래스의 생성자는 호출되지 않고 소멸자만 호출된걸 확인할 수 있습니다.

그 이유는 전달 받은 원본의 클래스 객체의 원본 상태를 잃어버리기 때문입니다.

다시 말해 cal 원본을 전달하고 sum함수에서 수정할 경우 원본에 상태를 잃을 수 있습니다.

그렇기 때문에 객체를 복사해서 전달한 후에 함수가 끝나면 같이 소멸자를 호출하고 소멸합니다.

그래서 소멸자만 호출됩니다.

이점 꼭 기억해주세요.

 

 

728x90
반응형

'[ C++ ] > - C++ 문법공부' 카테고리의 다른 글

C++ 14장 [복사생성자]  (0) 2022.11.11
C++ 13장 [참조변수]  (0) 2022.11.04
C++ 11장 [string]  (0) 2022.10.28
C++ 10장 [this 포인터]  (0) 2022.10.27
C++ 9장 [메모리 할당]  (0) 2022.10.26

댓글