これは主に個人的な好みですが、多くの小さなゲームが同時に作成されている会社の内部から、この問題に関する私の見解を共有させてください (そのため、私の周りでは多くのコーディング スタイルが使用されています)。
このリンクには、関連する優れた回答がいくつかあります。C++クラスのメンバー変数にプレフィックスを使用する理由
あなたのオプション 1:
void A::setNumber(int number)
{
this->number = number;
}
まず第一に、多くのプログラマーはこれが面倒で、' this-> ' を連続して入力する傾向があります。次に、さらに重要なことに、変数のいずれかがパラメーターまたはローカル変数と名前を共有している場合、「番号」の名前を変更するように設計された検索置換は、検索置換スコープにあるメンバー変数に次のように影響する可能性があります。良い。
あなたのオプション 2:
void A::setNumber(int number)
{
A::number = number;
}
これで私が遭遇した問題は、大規模なクラス、または大規模な関数を持つクラス (関数が表示されないか、クラスの名前が予期せず付けられている) では、A::(thing) の書式設定がアクセスに非常によく似ていることです。名前空間の一部であるため、誤解を招く可能性があります。もう 1 つの問題は、前のオプションの #2 と同じです。使用している変数に名前が似ていると、予期しない混乱が生じることがあります。
あなたのオプション 3:
void A::setNumber(int number)
{
mNumber = number;
}
これは、提示された 3 つのオプションの中で最も優れたものです。明確で意味のあるプレフィックスを含む構文を作成 (および保持) することで、ローカル (またはグローバル) 変数が共有しない一意の名前を作成するだけでなく、その変数が宣言されている場所をすぐに明確にします。あなたがそれを見つけた文脈に関係なく。私はそれがこの「 mVariable 」とこの「 m_variable 」の両方のように行われるのを見てきましたが、大文字の連結よりもアンダースコアを好むかどうかに大きく依存します。さらに、あなたのスタイルがポインターに対して ' p ' を追加したり、グローバルに対して ' g ' を追加したりする傾向がある場合、このスタイルはうまく調和し、読者に期待されます。