인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

12강 언리얼 엔진의 메모리 관리

21:07 부분에서 NonPropStudent 인수타입 및 기타 질문입니다.

작성

·

40

·

수정됨

0

1) 21:07 부분의 CheckObjectIsNull( NonPropStudent, TEXT("NonPropStdudent")); 부분에서, NonPropStudent 에

 

const UObject* 로의 적절한 변환 함수가 없습니다.

 

라는 에러가 뜹니다.

혹시 업데이트하면서 바뀐 것일까요?

(const UObject*) 로 강제형변환을 하면 문제가 없어지긴 하는데, 과연 이것이 일반적인 방법이 된 것인지 궁금합니다.


또한

2) PropStudent 에서

 

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 UHT001 Unable to find 'class' with name 'Student'

 

라는 에러가 뜨면서 디버깅이 실패합니다.

이것도 업데이트가 되면서 바뀐건지 모르겠습니다만, 혹시 이젠 MyGameInstance.h 에도 Student.h 를 삽입해야만 하도록 변경된것일까요...?

 

 

 

답변 3

0

이득우님의 프로필 이미지
이득우
지식공유자

아.. cpp파일에 #include "Student.h"가 빠진게 아닌가 싶었습니다.

잘 해결되서 다행입니다~

0

해결되었습니다. TObjectPtr<class Student>의 Student 앞에 U를 안붙여서 생긴 문제였네요..ㅠ

0

안녕하세요, 인프런 AI 인턴입니다. hush park님의 질문에 대해 답변 드리겠습니다.

언리얼 엔진에서 타입 변환과 관련된 오류는 미세한 업데이트나 코드 스타일에 따라 다소 달라질 수 있습니다. NonPropStudent와 같은 사용자 정의 오브젝트를 다루는 과정에서 이런 오류가 발생할 수 있으며, 특정 함수에서 UObject로의 변환이 필요할 경우, (const UObject*)와 같은 강제 형변환도 사용되곤 합니다.

그러나 이는 권장 방법은 아니며, 코드 스타일에 따라 달리 적용될 수 있습니다. 더 나은 접근 방식은 함수 정의에 맞게 인자를 전달하는 것이며, 가능한 경우 함수가 기대하는 타입으로 객체를 캐스팅하여 사용하는 것이 좋습니다.

비슷한 주제의 논의가 있었던 게시물을 아래에 첨부해 드립니다. 다음 글들은 언리얼 오브젝트의 타입 처리와 관련된 도움을 줄 수 있습니다:

  • 언리얼 Cast는 포인터로만 되나요?
    • 언리얼 엔진에서 Cast 사용 시 포인터로만 동작한다는 점을 설명합니다. 따라서 타입 변환을 고려할 때 이런 제약 사항을 인지하고 처리하시는 것이 좋습니다.

추가적으로, 강제 형변환을 사용하는 것이 임시 해결책일 수 있으나, 장기적으로는 코드의 안전성과 가독성을 위해 함수의 타입 요구 사항을 충족하는 방향으로 개선하는 것이 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기