I’m kind of confused as to why the methods from FBullCowGame.h are defined within a separate .cpp file (FBullCowGame.cpp). Could they not be defined within the .h file?
They could be but take a look here
That makes a bit more sense. Thanks for your help 
To further comment based on what I’ve experienced with coding and from what Ben has also said in his lectures:
You could technically slap every function prototype at the top of each .cpp file and delete the header file for FBullCowGame and it will work just fine. It’s a small program in comparison to something like the Unreal Engine.
Parroting the article: You could also do that for larger programs but the biggest thing I’ve come to realize is it really helps with readability and compile times when they are split like that especially when you end up with dozens of functions.
It can also help when you want to reuse the functions across multiple files.
Instead of copying the entire header and .cpp file, you can use #include on that header file and it will bring those functions into scope. (Sorry to the coding veterans if my jargon is all wonky)
ie: #include <iostream>, #include <string>, #include <stdlib.h>