"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ में संदर्भ या पॉइंटर से कब गुजरना है: एक मार्गदर्शक सिद्धांत?

C++ में संदर्भ या पॉइंटर से कब गुजरना है: एक मार्गदर्शक सिद्धांत?

2024-11-15 को प्रकाशित
ब्राउज़ करें:844

When to Pass by Reference or Pointer in C  : A Guiding Principle?

सी में संदर्भ या सूचक से गुजरना: एक मार्गदर्शक सिद्धांत

सी में, यह समझना कि संदर्भ से गुजरना कब नियोजित करना है और सूचक का उपयोग कब करना है महत्वपूर्ण है. इस अभ्यास से कुशल और त्रुटि-मुक्त कोड प्राप्त हो सकता है।

सामान्य स्थितियाँ

  • किसी फ़ंक्शन में std::string पास करना:

    • foo(std::string*) या foo(std::string&)?
  • किसी फ़ंक्शन में tr1::shared_ptr पास करना:

    • foo(tr1::shared_ptr* ptr ) या foo(tr1::shared_ptr& ptr)?

पॉइंटर्स बनाम संदर्भ

संदर्भ से गुजरने से स्थिरता मिलती है, क्योंकि प्रत्येक वस्तु को संदर्भ के रूप में माना जा सकता है। हालाँकि, पॉइंटर से गुजरने से nullptrs और शाब्दिक को संभालने की सुविधा मिलती है। वेक्टर> > आसन्न मानचित्र; वेक्टर* मेरे मित्र = नया वेक्टर(); myFriends->push_back(string('a')); myFriends->push_back(string("v")); myFriends->push_back(string("g")); adjacencyMap["s"] = share_ptr >(myFriends);

संदर्भ और संकेतक दोनों के गुणों पर विचार करने की आवश्यकता पर प्रकाश डालता है:

मानचित्र कुंजियाँ उपयोग करती हैं संदर्भ, स्मृति दक्षता की गारंटी।

वेक्टर पॉइंटर गतिशील आवंटन की अनुमति देता है, जिससे वेक्टर की सुविधा मिलती है अतिरिक्त।
map> > adjacencyMap;
vector* myFriends = new vector();
myFriends->push_back(string("a"));
myFriends->push_back(string("v"));
myFriends->push_back(string("g"));
adjacencyMap["s"] = shared_ptr >(myFriends);

अंगूठे का नियम
  • अंततः, उचित विकल्प विशिष्ट आवश्यकताओं पर निर्भर करता है। मार्गदर्शक सिद्धांत के रूप में, इस पर विचार करें:

संदर्भों का उपयोग करें: कुशल मेमोरी उपयोग के लिए और जब आपने संदर्भित ऑब्जेक्ट तक पहुंच की गारंटी दी हो।

उपयोग करें सूचक:

nullptrs को संभालते समय, गतिशील मेमोरी के साथ काम करते समय, या जब आपको स्वयं संदर्भों को संशोधित करने की आवश्यकता होती है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3