C のインライン メンバー関数 : 詳細
インライン メンバー関数はクラス定義内で宣言されますが、クラス本体の外部で実装されます。通常、これらはヘッダー ファイル内に存在しますが、ヘッダー内に実装を配置することが不可能な状況も考えられます。
クラス A にクラス B のインスタンスが含まれ、クラス B がインライン メンバーを宣言するシナリオを考えてみましょう。 A のインスタンスを返す関数 getA() です。循環インクルードのため、getA() の実装を B.cpp ファイルに移動する必要があります。
疑問が生じます: コンパイラはインライン化されますか?下駄()? C FAQ によると、インライン関数の定義は、単一の .cpp ファイル内で排他的に使用される場合を除き、ヘッダー ファイル内に存在する必要があります。この場合、定義は B.cpp 内にあります。つまり、B.cpp 自体内での使用を除いて getA() はインライン化されません。
インライン キーワードの重要性に関しては、のみを使用することをお勧めします。
.cpp ファイル内でインライン メンバー関数を定義する別のアプローチを見つけることについては、残念ながら、私たちの知る限りでは知られていません。コンパイラーがインライン化を実行するには、定義がヘッダー ファイルに存在する必要があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3