How can I get a Blueprint Actor in C++?

I believe TSubobject<> is usually used with ActorComponents.

There are several predefined ‘singleton-like’ actor classes (like gamemode, gamestate, etc) whose references are kept/managed in UWorld and can be accessed using the GameplayStatistics helper methods. TSubclass is perfect for this kind of use as you can set your customized blueprint class to GameMode and then in the code get access to the instanced actor.

For runtime spawned actors, it’s also not a problem, as UWorld::SpawnActor<…>(…) always returns a pointer to the spawned actor.

The only trouble is to deal with editor-time created actors. To get access to them in native code, a general solution is to iteratively search all actors/objects by name. Besides that, I think it is also reasonable to make those actors register themselves to somewhere in their first Tick()