• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

함수 삭제에 대해서

22.05.13 05:57 작성 조회수 152

0

안녕하세요 선생님
 
강의 33분쯤 내용에 대한 질문입니다!
 
delete k; 에 따라서 k주소의 데이터가 모두 삭제되면
 
job() 함수를 실행하였을때, this 포인터의 주소를 거치기 때문에 이미 삭제된 엉뚱한 메모리를 건드리는 것이 위험하다는 부분은 잘 이해를 했습니다..
 
그렇다면 이미 선언된 job() 함수를 없애는 방법은 없을까요?
 
나름 고민해서 k = nullptr 를 해봐도 이미 ResetHpJob()의 주소가 job에 저장돼서 안되는거 같더라구요..
 
캡처에 this를 표기함으로 위험성을 잘 인지할 수 있다는 것은 이해했지만, 저러한 상황이 왔을 때, 위험한 함수(job)를 아예 제거하는 방법은 없을지 궁금합니다!
 
만약 제거가 힘들다면 if(k){job()} 와 같은 방식으로 코드를 설계하는 방법이 좋아보이는데,, 혹시 다른 좋은 방법이 있을지도 궁금합니다!
 

답변 1

답변을 작성해보세요.

1

특별히 없앨 수 있는 방법은 없고
말씀대로 k를 유지시켜주는 방향으로 접근해야 하는데
결국 스마트포인터 개입이 최선입니다.
관련해서 서버 강의에 Job을 다룰 때 다양한 예제가 나오긴 합니다.