두 개의 클래스가 work 및 workItem을 만들었습니다.클래스 목록에서 메모리를 확보하는 방법
CWorker *work = new CWorker();
CWorkItem *workItem = new CWorkItem();
작업 클래스에는 공개 목록 m_WorkList가 있으며 여기에 작업 항목이 추가됩니다.
work->m_WorkList.push_back(workItem);
난 그냥
if(work != NULL)
delete work;
나는 다음과 같은 소멸자의 목록을 반복해야합니까 작업을 삭제하면? 이 작업을 수행하는 더 좋은 방법은 무엇입니까? 대신 명확하게 사용할 수 있습니까?
while(m_WorkList.size())
{
CWorkItem *workItem = m_WorkList.front();
m_WorkList.pop_front();
if(workItem)
delete workItem;
}
삭제하기 전에 null을 확인할 이유가 없습니다. null을 삭제하는 것은 아무 작업이 아닙니다. 또한 동적으로 할당 할 필요가 있습니까? 이상적으로 당신은 그걸로 끝내지 않을 것입니다. – GManNickG