質問

ルックアップテーブルを使用してテキストメッセージを解析するMessageクラスがあります。私は多くのメッセージを受け取り、多くのオブジェクトを作成および破棄するので、それらのルックアップテーブルを静的メンバーとして宣言して、同じテーブルが同じ値で何度も初期化されるのを防ぎます。

それは正しいアプローチですか、それともより適切なC ++の方法がありますか?

ありがとう。

役に立ちましたか?

解決

これは正しい方法のように聞こえますが、コンパイラがこれを最適化することを期待しています。アプリケーションのベンチマークを行って、テーブルを静的として宣言すると速度が上がりますか?

大きなルックアップテーブルが多数ある場合、パフォーマンスは向上しますが、テーブルは常にメモリに保持されることに注意してください。

他のヒント

メッセージクラスがルックアップ情報を共有している場合、静的ルックアップを独自のクラスに抽象化する価値があるため、実際には一度だけ初期化されます。

とにかく、静的クラスのメンバーは間違いなく行く方法です。

クラス変数、つまりクラスレベルで静的にすることができます。そうすれば、もしあればサブクラスで利用でき、おそらく<!> quot; hidden <!> quot;個々のメソッドの静的ローカル変数として。

はい、すべてOKです。時々それは良い解決策です:一度だけ作成される静的関数。また、シングルトンオブジェクトを使用することもできますが、より広いアクセシビリティを備えています。

マルチスレッドアプリケーションを使用している場合、およびルックアップテーブルに、このテーブルよりも早く破棄される可能性のある別のデータへのポインタが含まれている場合は注意してください。

シングルトンパターンの使用もこれに有効です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top