C のインライン メンバー関数 : 詳細
インライン メンバー関数はクラス定義で宣言されますが、クラス本体の外部で実装されます。通常、これらはヘッダー ファイル内に存在しますが、ヘッダー内に実装を配置することが不可能な状況も考えられます。
クラス A にクラス B のインスタンスが含まれ、クラス B がインライン メンバーを宣言するシナリオを考えてみましょう。 A のインスタンスを返す関数 getA()。循環インクルードのため、getA() の実装を B.cpp ファイルに移動する必要があります。
質問コンパイラは getA() をインライン化しますか? C FAQ によると、インライン関数の定義は、単一の .cpp ファイル内で排他的に使用される場合を除き、ヘッダー ファイル内に存在する必要があります。この場合、定義は B.cpp 内にあります。つまり、B.cpp 自体内での使用を除いて getA() はインライン化されません。
インライン キーワードの重要性に関しては、のみを使用することをお勧めします。ベスト プラクティスとしては、クラス本体の外側の関数定義にあるものです。
.cpp ファイルでインライン メンバー関数を定義するための代替アプローチを見つけることに関しては、残念ながら、私たちの知る限りでは知られていません。コンパイラーがインライン化を実行するには、定義がヘッダー ファイルに存在する必要があります。
以上がインラインメンバー関数を .cpp ファイルに実装できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。