Part 1: // Header.h void func(); // Declares func() // File1.cc #include "Header.h" void func() { // Defines func() ... } // File2.cc #include "Header.h" ... // Do something else func(); // Calls func() Part 2: // Header.h inline void func() { // Defines func() ... } // File2.cc #include "Header.h" ... // Do something else ... // Code for func()