is this correct?
For both user-made and library files, the files importing/including the header files only get the definitions during the linking process
if one directly imports/includes some cpp file, the definitions are there during the compilation (I know this causes bloating and should be avoided)
for modules, I am guessing whatever technique is used to only compile the interface once is also used on the definition/cpp file allowing for both to be present during compilation.
I am most unsure about the module one.
Also I put import/include since import can replace #include, and there shouldn’t be a difference if the file was made for #include.
Source: Windows Questions C++