C++ ヘッダー ファイルに実装ファイル (.cpp) を含める必要がないのはなぜですか?
デバッガーが仕事をするのか、それとも必要ないのか疑問に思っていますか?
コンパイラは、インターフェイスに準拠するためにヘッダー ファイルのみを必要とします。
コードを実行するには、実装が必要ですが、ソースではなくライブラリとして必要です。動的 (Linux では .so ファイル、Windows では .dll) であるか、コンパイル後に静的にリンクされます。
デバッグには、行をステップ実行するためのソース ファイルが必要です。
ヘッダー ファイルは、主に型宣言と、他のファイルに実装されているコードへの参照です。ソース ファイルはこれらの宣言を認識する必要がありますが、ヘッダー ファイルは実装を認識する必要はありません (インラインを除く)。複数のソース ファイルで同じヘッダー ファイルを使用でき、リンカは必要に応じて共有実装コードに確実にアクセスできるようにします。