7
votes

Quel est le terme correct pour retourner quelque chose en tant que paramètre OUT?

J'espère que cette question est sur le sujet.

Je faisais revue de code et je suis tombé sur la fonction suivante: xxx

Cette fonction est utilisée pour récupérer les valeurs de xxx et yyy de certaines classes au moyen de paramètres de sortie.

Les commentaires (utilisés ultérieurement pour la documentation automatique) disent:

... cette fonction renvoie par référence le [xxx] et [yyy] ...

évidemment la fonction renvoie une valeur booléenne indiquant le succès ou l'échec. Donc, la phrase ci-dessus doit être reformulée. Mais comment? Quel est le terme correct (le cas échéant) pour renvoyer quelque chose, tel qu'il était, au moyen d'un paramètre OUT, ou, en d'autres termes, peupler un argument passé par référence?

La question est marquée langue étiquette agnostique, parce que ce n'est pas spécifique C ++. Mais il est également marqué C ++ car l'exemple est en C ++.


4 commentaires

Je dis généralement que quelque chose à l'effet de "La fonction renvoie une valeur indiquant le succès ou l'échec. En cas de succès o_xxx aura la valeur de [xxx] et o_yyy La valeur de [yyy]. En cas d'échec, les arguments sont inchangés. ".


Les paramètres OUT sont parfois utilisés car il y a plus d'un paramètre à revenir. Si vous les combinez dans une classe, vous pouvez simplement renvoyer une instance. Parfois, les paramètres sont utilisés pour l'efficacité. Enfin, pourquoi passez-vous des données autour? Encapsumé: raconter, ne pas demander!


@ R.martinhofernandes: "En cas d'échec, les arguments sont inchangés" - et notent qu'il s'agit d'une forte garantie d'exception. Donc, si vous dites cela, assurez-vous d'assigner à o_xxx dans la fonction avant attribuer à o_yyy , puisque la mission de chaîne est celle qui peut échouer. Ou utiliser des swaps.


@Stevejessop Oh, bien sûr. Alternativement, s'il n'est pas facile de fournir une telle garantie, vous pouvez simplement dire "(...) les arguments auront des valeurs non spécifiées".


4 Réponses :


1
votes

dans les mots les plus simples:

fonction quelquefuncunc () peut modifier paramètres xxx (std :: string) et yyy (char) et retourne le succès ou l'échec ( bool ).


1 commentaires

Notez que ce n'est pas (En .NET TERMINS) A Paramètre Réf . C'est un paramètre out



8
votes

"Sur le succès, des magasins dans o_xxx et o_yyy les valeurs ..."; magasins dans est la façon dont le mode Linux MANPAGE STRTOUL (3) décrit ce que cette fonction fait avec son endptr argument.

Bien que j'ai également entendu la phrase "retourner" assez souvent avec des paramètres tapé par référence.


1 commentaires

Merci! A du sens, j'aime ça!



1
votes

Considérez la manière MSDN. exemple . < / p>

La valeur de retour est décrite dans sa propre section.
Les manipulations avec des paramètres de sortie sont décrites dans leurs propres sections et peuvent être éventuellement répétées dans la section Valeur de retour.


0 commentaires

1
votes

Si vous utilisez Doxygen, cela ferait:

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


0 commentaires