2

Google c++ style guideに従おうとしました。私はプライベートメンバーのセッターを持っています-年齢。

私の問題は、setAge 引数の名前を何にするかです。Javaでは、 this キーワードを使用して、同じ名前とそれらの間の違いの両方を持っています。

void setAge(int age){
     this.age = age;
} 

C++ でこれを行うためのコーディング スタイルは何ですか (Google コーディング スタイルが推奨されます)。

4

5 に答える 5

2

Google C++ コーディング標準では、クラス データ メンバーの末尾にアンダースコアを追加することが推奨されています。これに従うことは非常に重要だと思います。そうしないと、ローカル変数名を持つクラス データ メンバーを非表示にすることが保証されます。

ゲッターとセッターに関しては、メソッドが何をするかが明らかな場合、私は個人的にgetX面倒setXだと思います。

int age() const; // gets age, what else could it do?

void age(int age); // sets age, following the principle of least surprise.
于 2012-07-31T08:43:38.647 に答える
1

命名規則は多かれ少なかれ恣意的ですが、この場合、明らかな解決策は次のようになります。

void setAge( int newValue /* or newAge */ );

ローカルの規則に応じて、関数の名前setAgeは、、または単にage;になります。後者の場合、関数とデータメンバーを区別するために何らかの規則が必要です。私が見たほとんどの場所では、またはデータメンバー用(静的データメンバー付きまたは静的データメンバー用)のいずれm_ageかを使用しています。どちらかがトリックを行います。(私も見てきました。ただし、一部のフォントでは見づらい傾向があるため、一般的には先頭と末尾を避けるのが最善です。)myAges_ageourAge_ageage__

于 2012-07-31T08:57:30.467 に答える
1

いくつかの規則に従う限り、規則は実際には無関係です。newAge私は議論のために(またはnew_ageあなたが本当にGoogleのガイドラインに従いたいのであれば)使用する傾向がありsetAge()ます。

于 2012-07-31T08:28:52.727 に答える
1

「標準ライブラリ規約」に従います。getter と setter の両方がプロパティのように呼び出されます。

void size(size_t size);
size_t size() const;

プライベート メンバーは、末尾にアンダースコアが付いた同じ名前です。

 size_t size_;
于 2012-07-31T08:40:31.367 に答える
0

私は個人的にcppのJavaの慣習に従っています。したがって、プロパティに「ニューエイジ」という名前を付けたい場合、メンバーには。という名前が付けられnewAgeます。次に、ゲッターに名前が付けられgetNewAge()、セッターに名前が付けられsetNewAge(int newAge)ます。

于 2012-07-31T08:35:14.880 に答える