1

私は最近、基本クラスの変数を派生クラスで表す 2 つの異なる方法に出くわしました。これが主観的な問題であることは承知していますが、以下にリストされている 2 つの異なる形式の構文について、賛成/反対の議論を聞きたいです...

バージョン 1:

// in some code in the derived class...
base_class_member_variable_ = 0xBEEF;

バージョン 2:

// in some code in the derived class...
MyBaseClass::base_class_member_variable_ = 0xBEEF;

また、基本クラスが別の名前空間にある場合のバージョン 2 の拡張:

// in some code in the derived class...
base_namespace::MyBaseClass::base_class_member_variable_ = 0xBEEF;

変数が派生クラスで宣言/定義されていない場合、変数がどこから来ているかを明示的に述べることが理にかなっているのだろうかと思っています。どちらのバージョンでもコンパイルできるため、ここではスタイルについてのみ説明します。

このトピックは非常に主観的なものであることを理解しています。ただし、現在のポジションでは C++ の経験を持つ上級レベルのエンジニアにアクセスすることなく、コーディングの練習を改善しようとしています。助けてくれてありがとう。

4

2 に答える 2

1

余分なスコープ設定はすべて、コンパイラが推論できることを明示しているだけです。したがって、特にあいまいなケースがない限り、そこにすべてのスコープを設定する必要はありません。

スタイルの点で何が最善であり、他の人がコードをよりよく理解するのに役立つかについては...私はそれを避けるつもりです。ただし、私がよく目にするのは、1) あいまいさを取り除くために必要以上のスコープ修飾子を使用しないこと、および 2) 多くの場合、メンバー変数の参照方法に関するコーディング標準 (命名規則など) があることです。に。たとえば、すべてのメンバー変数を接頭辞「m_」で開始したり、メンバー変数を参照するたびに「this->」を使用したりできます。もちろん、誰もがこのようにするわけではありませんが、比較的一般的に行われているように思えます。

とはいえ、自分で作業している場合は、自分に合ったものを何でもできます。一方、大きなグループで作業している場合は、そのグループのコーディング スタイルの規則を調べて、それに従う必要があります。

于 2013-07-09T04:31:36.030 に答える
0

もう少し調査した結果、私の質問は議論の余地があるようです。私は Google C++ スタイル ガイドに固執している (または少なくともそうしようとしている) ので、とにかくすべてのメンバー変数を非公開にする必要があります。その結果、おそらくそのクラスに関連付けられた定数にアクセスする場合を除いて、上記の例のいずれも私のコードに存在することはありません。その場合、定数がどこから来ているのかを明示的に述べることが理にかなっているかもしれません。

回答と安心感、そして素晴らしい議論をありがとう。

于 2013-07-09T05:14:07.197 に答える