As you know, C++ does not has an automatic garbage collector so i need to delete manually my pointers…
What happens with those pointers declared in .h ?
class UStaticMeshComponent * myMesh;
Do i have to destroy it in the destructor of the current class? or does UE takes automatically control of it for me ?
What happens in this case?
void AMyClass::MyFunction(){
AActor * aSimpleActor = ASomeActor; // supposing that ASomActor is an Actor declared on a header for the current source file.
]
I´m still confused using pointers in UE…
Thanks in advance…
UE takes care of garbage collection on any UObjects so you don’t have to worry about the destructor.
If you search for “Unreal Object Handling” you can find more information.
Unless you’re doing something very unusual, you will only need UObject pointers marked as UPROPERTY()'s or UE4 smart pointers like TWeakPtr. In either case you will never need to manually delete anything. In my experience there are very few situations where you would ever need to use a raw pointer or manually manage memory in UE4. As long as you stick to one of the two solutions I mentioned you can (for the most part) consider UE4 C++ to be garbage collected.
Of course pointers to primitive types are useful even if you don’t dynamically allocate memory.
That being said if you plan on doing a dynamic array using your pointer I’d recommend you use the TArray class