why FVector's default constructor function did not set X,Y,Z to zero. it may cause uncentain problem

EVERYTHING that is allocated is zeroed out first in debug mode. If you have constructors, those are called after.

It’s not a UObject or UE thing. It’s a debug mode compiler thing. It is injected directly into all your code. Even stack space is zeroed out. This is so that all variables have a known value. Otherwise, it makes debugging a nightmare.