Header files contain only the declaration of the function and the actual implementation of the function is in the library. If they don't want to share source code they can share the obj file. Why do we use a Library when the implementation of a function can also be done in another C++ file?