0
많은 vtk 개체가 전용 멤버로 생성되는 vtk 프로젝트가 있습니다. 런타임 동안vtk 객체가 New()로 초기화되었는지 먼저 확인하여 삭제하는 방법은 무엇입니까?
vtkSmoothPolyDataFilter *m_SmoothFilter;
vtkDecimatePro *m_DecimatePro;
vtkCleanPolyData *m_CleanPolyData;
는 이러한 개체 중 일부는 새로운() 명령으로 초기화되어 있지만, 그들 중 일부는하지 : .H 파일에서 나는 다음과 같은 VTK 객체를 초기화합니다. UI 포인터를 사용할 수 없기 때문에 스마트 포인터를 사용할 수 없기 때문에이 객체들을 소멸자에서 삭제해야합니다. 나는 그들이 초기화 여부를 이해하는 몇 가지 부울 검사 시스템을 사용해야합니다 :
if(m_SmoothFilter)
m_SmoothFilter->Delete()
if(m_DecimatePro)
m_DecimatePro->Delete()
그러나이 코드 발췌 객체가 초기화 여부를 감지하지 않습니다. 이 수표는 어떻게 할 수 있습니까?
해결 방법과 비슷합니다. 나는 많은 물체를 갖고 있으며 실제로 모든 것을 0으로 초기화하고 싶지 않습니다. 나는 다른 방법이 있어야한다고 생각합니다. 그러나 그렇지 않다면 나는 당신의 아이디어를 활용할 것입니다. –
@EmreTurkoz : 해결 방법이 아니므로 C++에서 그 방법을 찾아야합니다./당신/아무것도 포인터를 초기화하지 않으면, 그들은 그냥 쓰레기를 포함합니다. 이 가비지와 실제 할당 된 객체의 포인터를 구별 할 방법이 없습니다. – PlasmaHH
@PlasmaHH : 안내해 주셔서 감사합니다. 나는 묘사 된 방법대로 할 것이다. –