This week's book giveaway is in the Reactive Progamming forum. We're giving away four copies of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams and have Adam Davis on-line! See this thread for details.
If you define them inside the class definition, then the functions will be implicitly marked as inline functions: Instead of compiling them once and linking to the compiled functions, the function definitions may be copied (inlined) into their call-sites before the call-sites are compiled. Inlining has performance benefits when the function definition is small and called very often, but it comes with a boatload of ifs, buts and coconuts.
In general, define classes in header files with function declarations only. Define the functions in .cpp files using the scope resolution operator (::). Only inline functions when you really know what you're doing, and why you're doing it.
This looks like a job for .... legal tender! It says so right in this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop