为什么 C++ 头文件不需要包含实现文件 (.cpp)?
我想知道调试器是完成这项工作还是不需要它?
编译器只需要头文件来符合接口。
要运行和执行代码,您需要实现,但不是在源代码中,而是作为库。它可能是动态的(Linux 上的 .so - 文件,Windows 上的 .dll)或者在编译后静态链接。
对于调试,您需要源文件来逐行执行。
头文件主要只是类型声明和对在其他文件中实现的代码的引用。源文件需要知道这些声明,但头文件不需要知道实现(内联除外)。多个源文件可以使用同一个头文件,链接器将确保它们可以根据需要访问共享的实现代码。