작성
·
380
1
왜 fproperty는 staticclass()를 사용하고 ufunction은 getclass()를 사용해서 reflection을 하나요?
답변 1
2
아래 두 구문은 동일한 오브젝트를 가리키고 있어서 똑같은 결과가 나옵니다.
UTeacher::StaticClass()
Teacher->GetClass()
시점이 컴파일 타임인지, 런타임인지의 차이가 있습니다.
예제는 둘 다 한 번씩은 사용하는 것이 좋을 것 같아 고안했습니다.
Get/SetValue_InContainer 함수를 보면 인자로 인스턴스를 넘기는 것을 볼 수 있습니다.
FProperty* NameProp = UTeacher::StaticClass()->FindPropertyByName(TEXT("Name"));
if (NameProp)
{
NameProp->GetValue_InContainer(Teacher, &CurrentTeacherName);
NameProp->SetValue_InContainer(Teacher, &NewTeacherName);
}
StaticClass()를 사용해서 변수이름으로 Reflection 해서 출력하거나 사용하면
CDO의 변수 Initial 값만 전달해주는게 아닌가 해서 여쭈어봤습니다.