コード全体で約 100 回呼び出す必要がある単純な方程式があります。関数のオーバーヘッドを最小限に抑えようとしていますが、まだ OOP の概念を使用しています (これは私にとっては新しいことです)。この方程式は、2 つの差の最大値を計算する単純なものです。3行のようです。インライン関数を使用する必要がありますか? もしそうなら、それを使用するために通常受け入れられている方法は何ですか(つまり、別の.hファイルを作成し、それを基本クラスに入れる必要があります(この関数を使用するすべてのオブジェクトは間接的に派生しています)。
3 に答える
2
コンパイラに適切なリンク時最適化機能が備わっている (およびそれらが有効になっている) 場合を除き、インライン化する関数全体を宣言し、ヘッダー ファイルで定義する必要があります。インライン化された関数専用の .h ファイル、またはクラス階層内のどこに配置するかについては、コードやデザインの残りの部分を提供していただいたとしても、お伝えできませんでした。それを行うための唯一の正しい方法についての事前定義されたルールよりも、実際にはスタイル上の選択です。
編集:明確にするために:インライン関数が単一のソース(.cpp)ファイルでのみ使用される場合は、同じファイルでstatic inline
. 複数のソース ファイルからアクセスできるようにする場合は、ヘッダー ファイルに配置します。
于 2013-07-12T20:29:02.727 に答える
1
はい、そうでinline
ない場合は関数メンバーを使用できますvirtual
。ただし、このインライン関数を使用するすべてのファイルにはその定義が存在する必要があるため、この関数の実装を *.h ファイルに配置することをお勧めします。仮想の場合、標準に従ってインラインを使用することはできません (gcc では許可されていますが)。
しかし、どのような場合でも、標準は関数のインライン展開を保証しませんinline
。
于 2013-07-12T20:26:55.860 に答える