프로그램시 인터럽트나 시그널발생시 객체의 소멸자를 부르는 방
글쓴이: 이우중 / 작성시간: 화, 2003/09/23 - 3:59오후
C++로 프로그램을 짜다가 고민에 빠졌습니다.
문제는 키보드 인터럽트나 혹은 다른 시그널에 의해서 프로그램이 종료가 될때 현재 생성되어 있는 객체의 소멸자를 어떻게 불러야 할것인가 하는 점입니다.
signal 함수에 객체의 멤버 함수는 등록이 될 수 없습니다.
하나의 대안으로 extern "C" { } 로 정의된 함수에서
소멸하고자 하는 객체의 레퍼런스를 저장하고 있는 객체의 static 멤버 함수를 호출하는 방법이 하나의 방법이 될 수 도 있을 것입니다.
하지만 뭔가 깔끔한 패턴이나 좋은 디자인이 언듯 떠오르질 않네요
혹시 좋은 방법이 없을까요 ? :-)
Forums:
singleton이 필요하지 않을까요
단 하나만 존재하는 전역적인 객체의 인스턴스는 C++에서 주로 singleton 이라는 패턴으로 작성이 됩니다.
굳이 따로 레퍼런스를 만들거나 하지 않고, 인스턴스의 레퍼런스 역시 모두 singleton의 하나의 메소드로 가능하니까 깔끔해지고 괜찮은 방법이 아닐까, 하고 생각해봅니다.
댓글 달기