= 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 шамаство? или это банальная ошибка и будет утечка памяти? 
                  
                  
                  Спасибо за ответ ) если он будет ... 
                  
                  
                  потом елси что на фомру жпика полезу, там спрошу, если тут не скажут )
                  
                  
                
Ну утечки не будет, скорее всего просто будет висеть scene компонент на новом руте
так это опечатка в туторе, или что это? для меня это выглядит как ошибка в чистом виде, взяли указатель на объект и перезаписали его. Я хочу понять, зачем так делать?
кароч как то странно, может этот случай обраатывает какая то предсборочная утилита, котоаря генерит кучу обвязок на этим и логику делает правильной?
Разработчики тоже могут ошибаться)
ну вот взялся я изучать движек, и тперь мне не дает покя это все )) пойду на форм эпиков тогда хочу понять, зачем так сделано, можно ли так? ))
Если я правильно помню, там работает оно так, что у тебя по умолчанию есть какой-то Root, который обычно просто Scene, и он при первом его переписывании удаляется полностью (поправьте если я не прав)
так он не переписывается же... там прсото в указатель записывается новый адрес... если это не обработано какой то утилиткой котоаря генерит код ,который удалит и перепишет рута валидно
и там вроде бы не shared ptr даже ,т.е. простой указатель, это ж никак не отслеживается
Обсуждают сегодня