In case of C++ there the difference btween struct and class is minimal.
The only difference in case of C++ you should be bother is that in struct everthyning by default have public access level.
Structs in C++ is just left over from C compatibility.
Now in case of Unreal.
Structs, can’t expose UFUNCTION to blueprint, and are more of an data holding structure than object on it’s own. You will notice that in Unreal you very rarely construct struct as an object and more often you just pass it as reference or pointer, with grouped data.