동적 할당 에 대한 주 cpp에서 포인터 변수 ptr_view를 작성하여 화면에서 일부보기 & 버튼을 생성했습니다.cocos2d-x에서의 C++ 동적 할당
sch, class_A의 공통 포인터, ... 포인터 ptr_view에 액세스하기위한 주 클래스를 나타냅니다. class_A 버튼을 누르면 아래와 같은 기능이 실행 중입니다. sch-> ptr_view에 액세스하려고 할 때 CC_SAFE_DELETE가 를 실행 중일 때 class_A의 메모리가 종료되기 때문에
void class_A::ChangeView_B()
{
CC_SAFE_DELETE(sch->ptr_view);
sch->ptr_view = new class_B;
sch->ptr_view->RCreation(main_view);
}
그러나 이것은 분명히 오류를 생성, 내가 마지막으로, 왜 을 알게 그래서 'SCH는'더 이상 존재하지 않습니다 . 그러나이 문제를 해결하는 방법을 아직 모릅니다. 누구나이 상황을 극복하기위한 약간의 단서를 줄 수 있습니까?
내 질문에 답변 해 주셔서 감사합니다. 그러나 CC_SAFE_DELETE (sch-> ptr_view) 코드를 삭제하고 classU가 현장에 남아있는 모든 버튼과 리소스를 삭제하는 cleanUp()과 같은 새 함수를 삽입하면 오류가 발생하지 않습니다. 나는 또한 이것을 디버깅했고 ptr-> view가 오류를 생성한다는 것을 발견했다.이 코드 뒤에 "sch"는 null을 반환한다. C++에서만 해결할 수있는 다른 아이디어가 있습니까? 나는 Objective-C에 대해 전혀 모른다. –
나는이 문제를 매우 간단하게 해결했다. 나는 모든 클래스에서 "sch"와 같은 변수를 만들 필요가 없도록 "ptr_view"를 다른 싱글 톤 클래스로 옮겼습니다 ...하지만 감사합니다. logan20735, 스마트 포인터가 무엇인지 알아야합니다. –