์ƒ์„ฑ์ž์—์„œย 

Class = CretaeDefaultSubobject<ClassType>....


๋ฅผ ํ†ตํ•ด์„œ SubObject๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ˜„์žฌํด๋ž˜์Šค์—์„œย SubObject์˜ ํ•จ์ˆ˜๋ž‘ ๋ณ€์ˆ˜์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์ž–์•„?


๊ทผ๋ฐ ClassType::StaticClass()๋ฅผ ์“ฐ๋ฉด ํ•ด๋‹น ClassType์˜ ์ปดํŒŒ์ผํƒ€์ž„์—์„œ ์ƒ์„ฑ๋œย UClass๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š”๊ฑธ๋กœ ์•Œ๊ณ ์žˆ์–ด


UClass์—๋„ ํ•จ์ˆ˜๋ž‘ ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ๋‹ค๊ณ  ์•Œ๊ณ ์žˆ๊ฑฐ๋“ ?


๊ทธ๋Ÿผ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— CreateDefualtSubObject๋ฅผ ์•ˆ์จ๋„ StaticClass()๋ฅผ ์จ์„œ UClass๋ฅผ ๊ฐ€์ ธ์˜จ๋’ค์— ๊ทธ๊ฑธ ClassType์œผ๋กœ ์บ์ŠคํŒ…ํ•˜๋ฉด ๋˜‘๊ฐ™์ด ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ž‘ ๋ฉค๋ฒ„ํ•จ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒ ๋„ค?ย ๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ํ•œ๋ฒˆ ํ…Œ์ŠคํŠธํ•ด๋ดค๋Š”๋ฐ


UClass* A = ClassType::StaticClass(); ๋ฅผ ์‚ฌ์šฉํ•ด์„œ

ํฌ์ธํ„ฐ A์— ClassType์˜ UClass๋ฅผ ๋ฐ›์•„์™”์„๋•Œ


์ด๊ฑธ ClassType*ย AA = Cast<ClassType>(A); ์ด๋Ÿฐ์‹์œผ๋กœ ์บ์ŠคํŒ…ํ–ˆ๋Š”๋ฐย AA๊ฐ€ nullptr๊ฐ€ ๋˜๋”๋ผ๊ณ 


์ฐพ์•„๋ณด๋‹ˆ๊นŒ UClass๋Š” ์บ์ŠคํŒ…์ด ์•ˆ๋˜๊ณ ย ย TFieldIterator<>๋ฅผ ์“ฐ๋ฉด ํ•จ์ˆ˜๋ž‘ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ ๋Š”ํ•˜๋Š”๋ฐ


๋‚ด๊ฐ€ ๊ถ๊ธˆํ•œ๊ฑด ์™œ AA๊ฐ€ ์บ์ŠคํŒ…์•ˆ๋˜๊ณ  nullptr๊ฐ€ ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•จ