프로그래밍 노트/C&C++
C++ shared_ptr 객체를 전달받은 함수에서 사용 후 해제하는 방법
shared_ptr 객체를 전달받은 함수에서 사용 후, 자원이 해제되는지 확인한 결과입니다. 아직 C++에 익숙하지 못해서 제 맘대로 바꿔보면서 감을 익히는 중입니다. 2021. 02. 15 - 최초작성 shared_ptr 객체를 생성한 후, 함수에 객체를 전달한 후, 지역 변수에 대입해주면 자동으로 shared_ptr의 객체가 자원해제 되는줄 알았습니다. 하지만 예상과 달리 Data 클래스의 소멸자가 호출되지 않았습니다. 소멸자가 호출되었다면 “delete[] buf” 메시지가 출력되야 합니다. #include #include #include class Data { public: ~Data() { if (buf != nullptr) { delete[] buf; printf("delete[] buf\n"..
2021. 2. 15. 22:23