The reason for CreateDefaultSubObject is to instantiate the component during the objects construction phase. It’s just an extra step to creating the component in code, without it components just a definition in the header file.
Unity is different in this aspect that it’s c# which doesn’t have the distinction of header files and cpp files.
In unreal you can use
GetComponentByClass or the plural form GetComponentsByClass