Keep in mind, however, that whenever this .h file is #included, the code of the Geta() member function, as well as any other member function defined in the declaration file, is re-compiled. As a result, not only do you end up with longer compilation time, but you also may encounter longer linking time and difficulty to step into the function code during a debugging session. Therefore, it is best to implement all member functions in their corresponding .cpp file and leave only function prototypes in the .h file like this:

By the way, even when defining these member functions separately, the inline specifier is most likely redundant, since any decent optimizer is clever enough to figure out automatically when a member function should be inlined. In other words, inline is almost never required.