2012-02-06 11 views
7

मुझे आशा है कि यह प्रश्न विषय पर है।आउट पैरामीटर के रूप में कुछ लौटने के लिए सही शब्द क्या है?

मैं कोड की समीक्षा कर रहा था और ठोकर खाई निम्नलिखित समारोह पर:

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

इस समारोह बाहर मापदंडों के माध्यम से xxx और कुछ वर्ग के yyy के मूल्यों को पुनः प्राप्त किया जाता है।

टिप्पणियां (जो बाद में ऑटो प्रलेखन के लिए उपयोग किया जाता है) कहते हैं:

... इस समारोह रिटर्न संदर्भ द्वारा [XXX] और [yyy] ...

जाहिर है समारोह सफलता या विफलता का संकेत देने वाला एक बूलियन मान देता है। तो उपर्युक्त वाक्य को फिर से भरना होगा। पर कैसे? किसी चीज को वापस करने के लिए सही शब्द (यदि कोई है), जैसा कि, बाहर पैरामीटर के माध्यम से, या, दूसरे शब्दों में, संदर्भ द्वारा पारित तर्क को पॉप्युलेट करना क्या है?

प्रश्न भाषा अज्ञेयवादी टैग की गई है, क्योंकि यह C++ विशिष्ट नहीं है। लेकिन यह सी ++ भी टैग किया गया है क्योंकि उदाहरण सी ++ में है।

+1

मैं आमतौर पर की "समारोह की सफलता या विफलता का संकेत एक मान देता है प्रभाव से कुछ का कहना है कि सफलता के मामले में' o_xxx' होगा। [xxx] और 'o_yyy' का मान [yyy] का मान होगा। विफलता के मामले में, तर्क अपरिवर्तित हैं।" –

+1

आउट पैरामीटर कभी-कभी उपयोग किए जाते हैं क्योंकि लौटने के लिए एक से अधिक पैरामीटर होते हैं। यदि आप उन्हें कक्षा में जोड़ते हैं तो आप केवल एक उदाहरण वापस कर सकते हैं। कभी-कभी बाहर पैरामीटर दक्षता के लिए उपयोग किया जाता है। अंत में, आप डेटा क्यों पास कर रहे हैं? Encapsulate: बताओ, मत पूछो! –

+0

@ आर। मार्टिन्हो फर्नांडीस: "विफलता के मामले में, तर्क अपरिवर्तित हैं" - और ध्यान दें कि यह एक मजबूत अपवाद गारंटी है।तो यदि आप यह कहते हैं, तो 'o_yyy' को असाइन करने से पहले * * o_xxx' को असाइन करना सुनिश्चित करें, क्योंकि स्ट्रिंग असाइनमेंट वह है जो असफल हो सकता है। या स्वैप का उपयोग करें। –

उत्तर

8

"सफलता पर, o_xxx और o_yyy मूल्यों में SomeFunc भंडार ..."; में स्टोर है कि लिनक्स मैनपेज strtoul(3) बताता है कि यह फ़ंक्शन endptr तर्क के साथ क्या करता है।

हालांकि मैंने संदर्भ-टाइप किए गए पैरामीटर के साथ अक्सर "वापसी में" वाक्यांश भी सुना है।

+0

धन्यवाद है! समझ में आता है, मुझे यह पसंद है! –

1

सरल शब्दों में:

समारोह SomeFunc() मापदंडों xxx(std::string) और yyy(char) को संशोधित करने और सफलता या विफलता (bool) देता है सकते हैं।

+0

ध्यान दें कि यह (.NET शर्तों में) एक 'ref' पैरामीटर नहीं है)। यह एक 'आउट' पैरामीटर –

1

एमएसडीएन तरीके पर विचार करें। Example

रिटर्न मूल्य अपने स्वयं के खंड में वर्णित है।
आउटपुट पैरामीटर के साथ मैनिपुलेशन उनके स्वयं के खंडों में वर्णित हैं और वैकल्पिक रूप से रिटर्न वैल्यू सेक्शन में दोहराया जा सकता है।

1

आप Doxygen का उपयोग कर रहे हैं, तो इस करना होगा:

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

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

संबंधित मुद्दे