If you use regular C++, indeed, there should be no problem if you remove the CPPs. However, if you use UE4/reflected C++ you will need to mark certain members as “Virtual”, such as “PURE_VIRTUAL void Something();” or something. I don’t remember the exact syntax/macros, but they can be Googled. Without them, UHT will search for implementations and, typically, without CPPs, it will fail there.
Edit: How do I implement Pure Virtual Methods? - Programming & Scripting - Unreal Engine Forums