Size: a a a

2020 October 10

ВШ

Владимир Ширшов... in Unreal Engine
Kirill Kocheshkov
TSubclassOf<A> a;
B b =a->GetDefaultObject<B>()
Так можно сделать?
Получи CDO того класса что пришел, да каст к нужному тебе
источник

HM

Hackerman Me in Unreal Engine
Я полагаю, ты здесь тусишь уже больше 10 минут :)
источник

KK

Kirill Kocheshkov in Unreal Engine
Я уже сделал, просто он до сих пор билдит)
источник

AD

Aleksei DTG in Unreal Engine
ну если ты один в один текст написал, то такое точно не сбилдит :)
источник

AD

Aleksei DTG in Unreal Engine
Владимир Ширшов
Получи CDO того класса что пришел, да каст к нужному тебе
так он уже шаблонную функцию вызывает :)
источник

ВШ

Владимир Ширшов... in Unreal Engine
Aleksei DTG
так он уже шаблонную функцию вызывает :)
Да я что-то с трудом пытался понять что вообще требуется ( потому что выше было:

"Мну нужно из tSubclassOf создать обьект"
источник

AD

Aleksei DTG in Unreal Engine
да Кирилл просто сам запутался. у него есть указатель на некий базовый класс, он хочет получить его СDO с учётом того, что по этому указателю может быть передан дочерний класс
источник

KK

Kirill Kocheshkov in Unreal Engine
f(TSubclassOf<A> InClass)
{
мне нужно сделать класс B и взять из него данные
B->SomeData
В А этих данных нет и переписать я его не могу.
}

Я просто не умею обьяснять)
источник

KK

Kirill Kocheshkov in Unreal Engine
Похоже да, запутался
источник

AD

Aleksei DTG in Unreal Engine
ну вот уже ближе к делу, у тебя там код вверху почти правильный
источник

KK

Kirill Kocheshkov in Unreal Engine
Там ошибку каста ток дало
источник

AD

Aleksei DTG in Unreal Engine
GetDefaultObject возвращает указатель
источник

KK

Kirill Kocheshkov in Unreal Engine
Аа, и его уже и кастить да?
источник

ВШ

Владимир Ширшов... in Unreal Engine
Kirill Kocheshkov
Аа, и его уже и кастить да?
Да
источник

AD

Aleksei DTG in Unreal Engine
кастить уже ничего не надо, шаблонная функция возвращает тебе объект нужного типа. Просто она возвращает тебе указатель
источник

AD

Aleksei DTG in Unreal Engine
Владимир. ему не нужно кастить, он СDO создаёт через
template<class T>
T* GetDefaultObject() const
источник

AD

Aleksei DTG in Unreal Engine
получает вернее, не создаёт
источник

ВШ

Владимир Ширшов... in Unreal Engine
Проверить только надо чтобы не нулл вернул, а то на вход могут не тот класс подать
источник

AD

Aleksei DTG in Unreal Engine
Владимир Ширшов
Проверить только надо чтобы не нулл вернул, а то на вход могут не тот класс подать
там ассерт, движок за него проверит :)
источник

AD

Aleksei DTG in Unreal Engine
check(Ret->IsA(T::StaticClass()));
источник