C では、クラス メンバー関数をインラインとして宣言するには、ヘッダー ファイル内での実装が必要です。この要件は、インライン関数の「1 つの定義ルール (ODR)」から生じており、関数を使用するすべての翻訳単位に同一の定義が存在することが義務付けられています。
ODR の遵守を保証する最も簡単な方法は、定義を含めることです。すべての翻訳単位にアクセスできるヘッダー ファイル内。そうすることで、コンパイラは関数が呼び出されるすべてのインスタンスで同じ定義を見つけて使用できます。
インライン定義を .cpp ファイルに配置しようとすると、未解決の外部シンボル エラーが発生します。これは、コンパイラが関数定義が呼び出される翻訳単位で関数定義を見つけることができないために発生します。
繰り返しになりますが、ヘッダー ファイル内のインライン関数定義により、すべての翻訳単位に同一の定義が存在することが保証され、ODR 準拠が促進されます。ただし、関数をインラインで宣言しても、コンパイラによる関数のインライン化が保証されるわけではないことに注意することが重要です。
以上がインライン関数定義をヘッダー ファイルに配置する必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。