Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में कार्यों को ऑब्जेक्ट्स कैसे पास करें?

कार्यों के लिए वस्तुओं को पारित करने के चार तरीके हैं। मान लेते हैं कि आपके पास कक्षा X है और आप इसे फंक्शन फन में पास करना चाहते हैं, फिर -

मूल्य से गुजरें

यह फ़ंक्शन स्कोप में ऑब्जेक्ट की उथली स्थानीय प्रतिलिपि बनाता है। जिन चीज़ों को आप यहाँ संशोधित करते हैं, वे उसे पास की गई वस्तु में दिखाई नहीं देंगी। उदाहरण के लिए,

घोषणा

void fun(X x);

कॉल करना

X x;
fun(x);

संदर्भ द्वारा पास करें

यह फ़ंक्शन के लिए ऑब्जेक्ट का संदर्भ पास करता है। आपके द्वारा यहां संशोधित की जाने वाली चीजें इसे पास की गई वस्तु में दिखाई देंगी। वस्तु की कोई प्रतिलिपि नहीं बनाई गई है। उदाहरण के लिए,

घोषणा

void fun(X &x);

कॉल करना

X x;
fun(x);

कॉन्स्ट संदर्भ द्वारा पास करें

यह फ़ंक्शन के ऑब्जेक्ट के लिए एक कॉन्स्ट संदर्भ पास करता है। आप यहां सीधे ऑब्जेक्ट को संशोधित/पुन:असाइन नहीं कर सकते हैं (आप इसके तरीकों का उपयोग कर सकते हैं जो ऐसा करते हैं)। यह उपयोगी है यदि आप चाहते हैं कि फ़ंक्शन में ऑब्जेक्ट की केवल एक पठनीय प्रति हो। वस्तु की कोई प्रतिलिपि नहीं बनाई गई है। उदाहरण के लिए,

घोषणा

void fun(X const &x);

कॉल करना

X x;
fun(x);

कॉन्स्ट पॉइंटर से गुजरें

यह ऑब्जेक्ट को फ़ंक्शन में एक कॉन्स्ट पॉइंटर पास करता है। आप यहां पॉइंटर को संशोधित/पुन:असाइन नहीं कर सकते। यह उपयोगी है यदि आप चाहते हैं कि फ़ंक्शन पॉइंटर में केवल इस ऑब्जेक्ट का पता हो। वस्तु की कोई प्रतिलिपि नहीं बनाई जाती है। उदाहरण के लिए,

घोषणा

void fun(X const *x);

कॉल करना

X x;
fun(&x);

कॉन्स्ट पॉइंटर से गुजरें

यह ऑब्जेक्ट को फ़ंक्शन में पॉइंटर पास करता है। यह वस्तु के संदर्भ को पारित करने के समान है। वस्तु की कोई प्रतिलिपि नहीं बनाई जाती है। उदाहरण के लिए,

घोषणा

void fun(X *x);

कॉल करना

X x;
fun(&x);

  1. जावास्क्रिप्ट आदिम/वस्तु प्रकार कार्यों में कैसे पारित होते हैं?

    जावास्क्रिप्ट आदिम और कार्य करने के लिए वस्तु प्रकारों को पारित करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0&q

  1. कैसे जावास्क्रिप्ट में अज्ञात कार्यों के लिए तर्क पारित करने के लिए?

    जावास्क्रिप्ट में अनाम कार्यों के लिए तर्क पारित करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <

  1. NSUserDefaults में कस्टम ऑब्जेक्ट्स को कैसे स्टोर करें?

    इस लेख में हम सीखेंगे कि अपने एप्लिकेशन में कस्टम ऑब्जेक्ट कैसे स्टोर करें, लेकिन इससे पहले कि आप कस्टम ऑब्जेक्ट को स्टोर करना सीखें, आइए देखें कि कस्टम ऑब्जेक्ट क्या हैं? एक कस्टम ऑब्जेक्ट कोई भी वर्ग या संरचना या कोई अन्य डेटा है जो मूल डेटा प्रकार नहीं है जैसे इंट, डबल, स्ट्रिंग इत्यादि। NSUserD