Всем привет... в туторах по UE4 C++ такой код: ... RootComponent

= CreateDefaultSubobject<USceneComponent>(TEXT("ProjectileSceneComponent"));
...
// Use a sphere as a simple collision representation.
CollisionComponent = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComponent"));
...
// Set the root component to be the collision component.
RootComponent = CollisionComponent;
вот тут тутор https://docs.unrealengine.com/4.26/en-US/ProgrammingAndScripting/ProgrammingWithCPP/CPPTutorials/FirstPersonShooter/3/
вопрос: Как так получается что сначала создается объект и указатель помещается в RootComponent, далее создается другой объект (CollisionComponent), и его указатель перезаписывает указатель в RootComponent? Это какое то шаманство о котором я не прочитал в новых стандартах C++, или это какой то UE4 only шамаство? или это банальная ошибка и будет утечка памяти?
Спасибо за ответ ) если он будет ...
потом елси что на фомру жпика полезу, там спрошу, если тут не скажут )

9 ответов

13 просмотров

Ну утечки не будет, скорее всего просто будет висеть scene компонент на новом руте

sashikknox- Автор вопроса
Egor | hackerman.me
Ну утечки не будет, скорее всего просто будет висе...

так это опечатка в туторе, или что это? для меня это выглядит как ошибка в чистом виде, взяли указатель на объект и перезаписали его. Я хочу понять, зачем так делать?

sashikknox- Автор вопроса
sashikknox
так это опечатка в туторе, или что это? для меня э...

кароч как то странно, может этот случай обраатывает какая то предсборочная утилита, котоаря генерит кучу обвязок на этим и логику делает правильной?

sashikknox- Автор вопроса
Egor | hackerman.me
Разработчики тоже могут ошибаться)

ну вот взялся я изучать движек, и тперь мне не дает покя это все )) пойду на форм эпиков тогда хочу понять, зачем так сделано, можно ли так? ))

sashikknox
ну вот взялся я изучать движек, и тперь мне не дае...

Если я правильно помню, там работает оно так, что у тебя по умолчанию есть какой-то Root, который обычно просто Scene, и он при первом его переписывании удаляется полностью (поправьте если я не прав)

sashikknox- Автор вопроса

так он не переписывается же... там прсото в указатель записывается новый адрес... если это не обработано какой то утилиткой котоаря генерит код ,который удалит и перепишет рута валидно

sashikknox- Автор вопроса
sashikknox
так он не переписывается же... там прсото в указат...

и там вроде бы не shared ptr даже ,т.е. простой указатель, это ж никак не отслеживается

Похожие вопросы

Обсуждают сегодня

что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
if (user?.choseType === 'oneDay') { await ctx.reply( 'Добро пожаловать в команду «Магнита»! Правда, на один день ☺️ ', ); await ctx.s...
Kokni
1
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
А я же правильно понимаю, что инструкция AT в ld только сохраняет метаинформации о том, куда загрузить сегмент, которую далее из эльфика читает grub(ну если граб)? Но я тогда ...
Evg Resh
2
Господа, импользую кастомный загрузчик, ядро запускается сразу в длинном режиме, хочу узнать, сколько всего физической ОЗУ есть у машины. И, может, знаете какие-то подводные к...
Vi Chapmann 🪙
6
а причем тут линкер скрипты? UEFI где-то расположила PML4 и прочее, а мне надо переложить её в другое физическое место. как?
Vi Chapmann 🪙
6
неужели нету аппаратного метода узнать объём ОЗУ?
Vi Chapmann 🪙
6
Карта сайта