This files come from the ShooterGame project that you can install for UE4.
In ShooterCharacter.cpp at line 690, there is a member function that uses an object CurrentWeapon which is a pointer of the class AShooterWeapon, it uses a member function AShooterWeapon::StartFire(), but in AShooterCharacter there is no definition of the AShooterWeapon class, so where does it get the memberfunction AShooterWeapon::StartFire() from?
void AShooterCharacter::StartWeaponFire()
{
if (!bWantsToFire)
{
bWantsToFire = true;
if (CurrentWeapon)
{
CurrentWeapon->StartFire();
}
}
}
Starting from line 277 of ShooterCharacter.h, you can see a declaration of CurrentWeapon pointer:
/** currently equipped weapon */
UPROPERTY(Transient, ReplicatedUsing = OnRep_CurrentWeapon)
class AShooterWeapon* CurrentWeapon;
Where is the StartFire() member function defined??