1


0

明らかに、マジックナンバーよりも名前付き定数を使用することのポイントは、コードを明確にするためであり、またコードの番号を変更する必要がないことです。

しかし、関数内で一度だけ使用された数値がある場合、どうしますか。 オブジェクトの速度を使用してその動きを計算する短いメンバ関数があるとしますが、これがその速度を使用する唯一の関数です。 よろしいですか。

A)使用する名前付き静的定数をクラスに与えます

B)名前付き定数を関数に入れる

C)マジックナンバーを使うがコメントする

D)その他

私はマジックナンバーを使い、その数字が1回だけ使われるのであればそれをコメントすることに傾いていますが、他人の考えを聞きたいのですが。

編集:名前付き定数を何度も呼び出される関数に入れて代入すると、パフォーマンスに影響がありますか。 もしそうなら、私は最良のアプローチは、名前空間に定数を入れるか、それをクラス変数にすることなどだろうと思います。

5 Answer


5


それを上に動かすだけです:

void do_something(void){const float InitialVelocity = 5.0f;

something = InitialVelocity; //など }


3


_ オブジェクトの速度を使用する短いメンバー関数があるとします _

あなたはそれを言った、定数は名前を持っています:

const type object_velocity = ....;

マジックナンバーは私の敵です:)


1


最低限、関数ローカルな名前付き定数を使用します。 通常、私はconstantという名前の無名名前空間を使用して、値がソースファイル全体で使用可能になるようにします。これは、後で他の機能に役立つ可能性があると想定しています。


0


Eclipsesリファクタリング関数を使用して、定数をメソッドの名前付き変数に移動します。


0


関数内で定数として使用してください。

const int x = myMagicNumber; //今魔法を文書化しなさい。