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 |
댓글