Spero che questa domanda sia sull'argomento.Qual è il termine corretto per restituire qualcosa come parametro out?
stavo facendo la revisione del codice e siamo capitati la seguente funzione:
bool SomeFunc(std::string& o_xxx, char& o_yyy);
Questa funzione viene utilizzata per recuperare i valori di xxx
e yyy
di una classe per mezzo di parametri fuori.
I commenti (che vengono poi utilizzati per auto-documentazione) dicono:
... questa funzione restituisce con riferimento al [xxx] e [yyy] ...
Ovviamente la funzione restituisce un valore booleano che indica il successo o il fallimento. Quindi la frase sopra deve essere riformulata. Ma come? Qual è il termine corretto (se esiste) per restituire qualcosa, per così dire, per mezzo di un parametro out o, in altre parole, per compilare un argomento passato per riferimento?
La domanda viene codificata in linguaggio agnostico, perché non è specifica per C++. Ma è anche etichettato C++ perché l'esempio è in C++.
solito dire qualcosa per l'effetto di "la funzione restituisce un valore che indica successo o il fallimento in caso di successo' o_xxx' avranno la. il valore di [xxx] e 'o_yyy' avranno il valore di [yyy]. In caso di errore, gli argomenti sono invariati.". –
I parametri di uscita vengono talvolta utilizzati perché è necessario restituire più di un parametro. Se li unisci in una classe, puoi solo restituire un'istanza. Qualche volta i parametri vengono usati per l'efficienza però. Infine, perché stai passando i dati? Incapsulare: dillo, non chiedere! –
@ R.MartinhoFernandes: "In caso di errore, gli argomenti sono invariati" - e si noti che questa è una forte garanzia di eccezione.Quindi, se lo dici, assicurati di assegnare a 'o_xxx' nella funzione * prima di * assegnare a' o_yyy', poiché l'assegnazione della stringa è quella che può fallire. O usare gli swap. –