2012-02-06 12 views
7

この質問がトピックであることを願っています。何かをoutパラメータとして返す正しい用語は何ですか?

私は、コードレビューを行うと、以下の機能につまずいた:

bool SomeFunc(std::string& o_xxx, char& o_yyy); 

をこの関数はアウトパラメータによってxxxといくつかのクラスのyyyの値を取得するために使用されます。

(以降オートドキュメントのために使用される)コメントは言う:

参照により...この関数の戻り[XXX]及び[YYY] ...明らか

成功または失敗を示すブール値を返します。したがって、上記の文は言い換える必要があります。しかしどうですか?何かを返すための正しい用語(存在する場合)は、そのまま、outパラメータを使って、言い換えれば、参照渡しの引数を取り込むことですか?

質問には、C++固有ではないので、タグが付いた言語には依存しません。しかし、C++でタグ付けされているのは、その例がC++であるためです。最も簡単な言葉で

+1

私は通常、「関数が成功したか失敗したかを示す値を返すの効果に何かを言う成功した場合には、 'o_xxx'があります。 [xxx]と 'o_yyy'の値は[yyy]の値になります。失敗した場合、引数は変更されません。" –

+1

戻すパラメーターが複数あるため、Outパラメーターが使用されることがあります。それらをクラスに結合すると、インスタンスを返すことができます。しかし、効率を上げるためにアウトパラメータが使用されることもあります。最後に、なぜあなたはデータを渡していますか?カプセル化:教えてください、尋ねないでください! –

+0

@ R.MartinhoFernandes: "失敗した場合、引数は変更されません" - これは強力な例外保証であることに注意してください。だから、もしあなたがこれを言うならば、文字列代入が失敗する可能性があるので、関数o * o_yyyに代入する前に関数o_xxxに代入してください。または、スワップを使用します。 –

答えて

8

"成功すると、o_xxxo_yyy値のSomeFunc店..."。 に格納されているのは、Linuxのマンページstrtoul(3)がその機能の内容をそのendptr引数でどのように記述しているかです。

私はまた、参照型のパラメータで十分に頻繁に "return in"というフレーズを聞いたことがあります。

+0

ありがとう!理にかなって、私はそれが好きです! –

1

機能SomeFunc()パラメータxxx(std::string)yyy(char) を変更し、成功または失敗(bool)を返すことができます。

+0

これは(.NETで) 'ref'パラメータではないことに注意してください。それは 'out'パラメータです –

1

MSDNの方法を検討してください。 Example

戻り値は、それ自身のセクションで説明します。
出力パラメータを持つ操作は、それぞれのセクションで説明しています。オプションで、戻り値セクションで繰り返すこともできます。

1

あなたはdoxygenのを使用している場合、これはどうしたら:

/** 
*- Description : This function ... 
* 
* @param[out] xxx ... 
* @param[out] yyy ... 
* 
* @return true for ..., false otherwise 
* 
***********************************************************************/ 
+2

'@param [out]' '@param [in]' –

関連する問題