If you inline in your .cpp file the inlined function will only effect any local functions that are within the scope of the .cpp file, not other .cpp files. If the function is in the header as a prototype it still will not be able to find the function in the object code because it's inlined it never really writes a function in the object code.
If you would like to make it clean you should put the inline code seperate in the header file (ignore the .cpp file). Basically like so :
class CWhatever{ void DoSomething();};// Add the function/method below your class prototypeinline void CWhatever::DoSomething(){}
This way the function/method is properly inlined to be used globally, and it stays outside of the prototype avoiding a messy looking class structure. I can't stand code that inlines a function in their prototype, it looks so ugly. C++ programmers need to learn etiquette. Anyway hope this helps.