C 定義をヘッダー ファイルに配置するのは世界共通の標準ですか?
ユーザーのプログラミング スタイルでは、クラス宣言はインクルード ファイルに格納され、定義はインクルード ファイルに格納されることが規定されています別々の .cpp ファイルに存在します。このアプローチは、記事「C ヘッダー ファイル、コード分離」の中で広く評価されている Loki の回答で概説されている原則と一致しています。
しかし、ある同僚は、C 宣言は通常、同じヘッダー ファイル内の定義を包含する必要があると主張しています。彼は、これが普遍的に採用されている現代の慣行であると主張しています。
この慣行の蔓延を検証する
この主張の正当性を確認するために、以下で観察される一般的な慣行を調べてみましょう。の
回答
あなたの同僚の主張は間違っています。コードを .cpp ファイル (またはその他の指定された拡張子) に保持し、宣言をヘッダーに保持することが広く行われてきました。
コードをヘッダーに配置すると、コンパイラのインライン化が強化されるなど、利点が得られる場合もあります。また、インクルード時にコードが繰り返し処理されるため、コンパイル時間が長くなる可能性もあります。さらに、ヘッダー内にコードが含まれている場合、オブジェクトの循環関係が複雑になる可能性があります。
要約すると、コードと宣言を分離するという一般的な慣行は、同僚の主張とは異なり、あなたの好みに沿ったものです。
例外と説明
テンプレートでは注目すべき例外が 1 つ発生します。 boost のような最新のライブラリはテンプレートを多用しており、「ヘッダーのみ」のアプローチを頻繁に採用しています。ただし、これはテンプレートに特に適用できる固有のシナリオです。
ヘッダーのみのコードの欠点
ヘッダーのみのコードを記述する場合の欠点を考慮することが重要です。
結論
C では、宣言と定義を分離するという従来の手法が依然として主流です。ヘッダーのみのコードが有益な特定のシナリオもありますが、その制限を理解し、慎重に使用することが重要です。ヘッダーのみの定義が普遍的に採用されているという主張には根拠がなく、コードと宣言を分離するという確立された慣行を維持することをお勧めします。
以上がC 定義をヘッダー ファイルに入れるのは本当に世界共通の標準ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。