Attach weapon using C++

You must use Unreal’s Actor Factories to spawn instances of classes derived from Actor, e.g.

FActorSpawnParameters spawnParams;
spawnParams.Owner = this;    
AMyWeapon* wep = GetWorld()->SpawnActor<AMyWeapon>(AMyWeapon::StaticClass(), spawnParams);