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

नॉन-कॉन्स्ट और कॉन्स्ट मेंबर फ़ंक्शंस के बीच 'इस' पॉइंटर प्रकार में क्या अंतर है?

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

What is the Difference in the 'this' Pointer Type Between Non-Const and Const Member Functions?

'इस' पॉइंटर के प्रकार को समझना

'यह' पॉइंटर एक पॉइंटर है जो उस ऑब्जेक्ट को इंगित करता है जिसके लिए सदस्य कार्य करता है कहा जाता है. यह स्वचालित रूप से कंपाइलर द्वारा प्रदान किया जाता है और ऑब्जेक्ट के सदस्यों तक पहुंचने के लिए उपयोग किया जाता है। 'इस' पॉइंटर का प्रकार इस बात पर निर्भर करता है कि इसे गैर-कॉन्स्ट या कॉन्स्ट सदस्य फ़ंक्शन के भीतर एक्सेस किया जा रहा है या नहीं।

एक गैर-कॉन्स्ट सदस्य फ़ंक्शन में, 'इस' का प्रकार "क्लासनेम *" है, जहां क्लासनाम क्लास का नाम है। यह सदस्य फ़ंक्शन को ऑब्जेक्ट के डेटा को संशोधित करने की अनुमति देता है। उदाहरण के लिए, निम्नलिखित कोड एक गैर-कॉन्स्ट सदस्य फ़ंक्शन दिखाता है जो ऑब्जेक्ट का नाम संशोधित करता है:

class Person {
    string name;
    void SetName(string newName) {
        name = newName;
    }
};

एक कॉन्स्ट सदस्य फ़ंक्शन में, 'इस' का प्रकार "कॉन्स्ट क्लासनेम *" है। यह इंगित करता है कि सूचक द्वारा इंगित मान स्थिर है, जिसका अर्थ है कि इसे संशोधित नहीं किया जा सकता है। सदस्य फ़ंक्शन अभी भी ऑब्जेक्ट के डेटा तक पहुंच सकता है, लेकिन यह इसे संशोधित नहीं कर सकता है। यहाँ एक उदाहरण है:

class Person {
    string name;
    void GetName() const {
        cout 

आम तौर पर, कंपाइलर सदस्य फ़ंक्शन के संशोधक के आधार पर स्वचालित रूप से 'इस' पॉइंटर के प्रकार को निर्धारित करेगा। हालाँकि, कुछ कंपाइलर 'इस' पॉइंटर के प्रकार को स्पष्ट रूप से निर्दिष्ट करने के लिए अतिरिक्त विकल्प प्रदान कर सकते हैं। सदस्य कार्यों और ऑब्जेक्ट डेटा का उचित उपयोग सुनिश्चित करने के लिए दोनों प्रकारों के बीच अंतर को समझना महत्वपूर्ण है।

नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3