Do stand alone C++ functions need a header file and a code file?
I am writing some C++ functions that use some of my other C++ classes but don’t belong in a class themselves. They are intended to be compiled in a dll and so I was wondering if it was necessary to declare them in a separate header file or if I could/should just put the declarations in the .cc file.
Maybe this would just be bad practice?
The header file is useful because it is able to let other source files know about the functions that are declared in a different translation unit.
This is necessary by the compiler to be able to check that what you are invoking is correct for the type checker. But the necessity comes from the declaration itself not from the existence of the header file.
For a DLL, if I remember correctly, you are not forced to do it just because you are going to declare the signature of the function anyway whenever you are using them, eg.
Of course this means that you will need to forward declare them anyway so I don’t see any problem in having an header files for your DLL, it will just keep all signatures together.