-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
함수 삭제에 대해서
22.05.13 05:57 작성 조회수 152
0
안녕하세요 선생님
강의 33분쯤 내용에 대한 질문입니다!
delete k; 에 따라서 k주소의 데이터가 모두 삭제되면
job() 함수를 실행하였을때, this 포인터의 주소를 거치기 때문에 이미 삭제된 엉뚱한 메모리를 건드리는 것이 위험하다는 부분은 잘 이해를 했습니다..
그렇다면 이미 선언된 job() 함수를 없애는 방법은 없을까요?
나름 고민해서 k = nullptr 를 해봐도 이미 ResetHpJob()의 주소가 job에 저장돼서 안되는거 같더라구요..
캡처에 this를 표기함으로 위험성을 잘 인지할 수 있다는 것은 이해했지만, 저러한 상황이 왔을 때, 위험한 함수(job)를 아예 제거하는 방법은 없을지 궁금합니다!
만약 제거가 힘들다면 if(k){job()} 와 같은 방식으로 코드를 설계하는 방법이 좋아보이는데,, 혹시 다른 좋은 방법이 있을지도 궁금합니다!
답변을 작성해보세요.
1
Rookiss
지식공유자2022.05.13
특별히 없앨 수 있는 방법은 없고
말씀대로 k를 유지시켜주는 방향으로 접근해야 하는데
결국 스마트포인터 개입이 최선입니다.
관련해서 서버 강의에 Job을 다룰 때 다양한 예제가 나오긴 합니다.
답변 1