6

次の2つの宣言の違いがヘッダーファイルにあることを知りたかったのですが、これらの両方のスタイルに出くわしました

void some_method(int);

2番目のスタイルは次のとおりです。

void some_method(int a);

あるスタイルには他のスタイルよりも利点がありますか。私にとって、1 つのスタイルには変数の名前がなく、変数の名前は付属の cpp ファイルに実装する必要があります。

4

7 に答える 7

9

機能に違いはありませんが、次のようにパラメータ名をドキュメントの形式としてよく使用します。

void verbTheThing(int verbId, int thingId);

追加する価値のあるものが何もない場合は、追加しません。

int max(int, int);
于 2013-06-20T09:12:15.143 に答える
4

主な関心事は一貫性です。1 つを選んでそれに固執します。私は個人的には 2 番目を好みます。パラメーター名は機能を記述でき、自己文書化されたコードは別の方法よりも優れているからです。

于 2013-06-20T09:12:46.143 に答える
3

主な違いは読みやすさです。2 番目のバージョンは長くなりますが、引数の名前があると本当に役立つ場合があります。ちょっとした例:

int move(int, int, int, int);

int move (int fromX, int fromY, int toX, int toY);
于 2013-06-20T09:13:06.507 に答える
2

一部の開発環境 (Visual Studio、Borland C++ Builder、たとえば eclipse にもこの機能があるはずです) では、(ブラケットを入力すると、関数の引数が自動的に一覧表示されます。

リスト パラメータ

これらの IDE では、関数の引数名 (ヘッダー内) がドキュメントとして機能するため、できるだけわかりやすいものにするのが一般的な礼儀です。

プログラマーがこの機能を備えた IDE を持っていない場合でも、前方関数宣言 (ヘッダー内) は常に可能な限りわかりやすいものにする必要があります。*.cpp同じ理由で、無数のファイル内で関数本体を探すよりも、ヘッダーを開いて関数パラメーターの意味を読み取る方が簡単です。

言うまでもなく、一部の関数では、パラメーター名がないと、パラメーターが何を意味するのかを理解できません。

例えば、

 Image::blitRect(int, int, int, int);

になり得る

 Image::blitRect(int x1, int x2, int y1, int y2);
 Image::blitRect(int x1, int y1, int x2, int y2);
 Image::blitRect(int x, int y, int width, int height);

もちろん、C++ プログラマーはこの状況で Point と Size のクラスを追加しますが、それは別の話です。

于 2013-06-20T09:26:35.383 に答える
1

どちらのオプションも有効です。ただし、ヘッダーにパラメーター名を指定すると、関数のシグネチャを読んで、実際の動作とパラメーターが表すデータをすばやく把握するのに非常に役立ちます。

于 2013-06-20T09:18:50.370 に答える
1

コンパイルに関する限り、どちらも違いはありません。ただし、パラメーターに名前を付けるとコードが読みやすくなり、人々がよりよく理解できるようになるため、2 番目の方が優れています。

于 2013-06-20T09:14:01.633 に答える