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

C++ में स्कोप रिजॉल्यूशन ऑपरेटर बनाम this पॉइंटर

यहां हम कुछ C++ उदाहरण देखेंगे और समझने की कोशिश करेंगे कि किस प्रकार का आउटपुट जनरेट होगा। फिर हम C++ में स्कोप रिजॉल्यूशन ऑपरेटर और 'this' पॉइंटर के उद्देश्य और कार्यों को समझ सकते हैं।

यदि कुछ कोड में कुछ मेंबर्स हैं जैसे 'x', और हम एक अन्य फंक्शन का उपयोग करना चाहते हैं जो उसी नाम 'x' के साथ एक आर्गुमेंट लेता है, तो उस फंक्शन में, यदि हम 'x' का उपयोग करते हैं, तो यह मेंबर वेरिएबल को छुपा देगा, और लोकल वेरिएबल का उपयोग किया जाएगा। आइए इसे एक कोड में जांचते हैं।

उदाहरण

#include <iostream>
using namespace std;

class MyClass {
private:
    int x;
public:
    MyClass(int y) {
        x = y;
    }
    void myFunction(int x) {
        cout << "Value of x is: " << x;
    }
};

int main() {
    MyClass ob1(10);
    ob1.myFunction(40);
    return 0;
}

आउटपुट

Value of x is: 40

क्लास के x मेंबर को एक्सेस करने के लिए, हमें 'this' पॉइंटर का उपयोग करना होगा। 'this' एक विशेष प्रकार का पॉइंटर है जो वर्तमान ऑब्जेक्ट की ओर इशारा करता है। आइए देखते हैं कि 'this' पॉइंटर इस कार्य को कैसे करने में मदद करता है।

उदाहरण

#include <iostream>
using namespace std;

class MyClass {
private:
    int x;
public:
    MyClass(int y) {
        x = y;
    }
    void myFunction(int x) {
        cout << "Value of x is: " << this->x;
    }
};

int main() {
    MyClass ob1(10);
    ob1.myFunction(40);
    return 0;
}

आउटपुट

Value of x is: 10

C++ में एक और ऑपरेटर है जिसे स्कोप रिजॉल्यूशन ऑपरेटर कहा जाता है। उस ऑपरेटर का उपयोग पैरेंट क्लास के मेंबर या कुछ स्टेटिक मेंबर्स को एक्सेस करने के लिए किया जाता है। यदि हम इसके लिए स्कोप रिजॉल्यूशन ऑपरेटर का उपयोग करते हैं, तो यह काम नहीं करेगा। इसी तरह, यदि हम स्टेटिक मेंबर के लिए 'this' पॉइंटर का उपयोग करते हैं, तो यह कुछ समस्याएं पैदा करेगा।

उदाहरण

#include <iostream>
using namespace std;

class MyClass {
    static int x;
public:
    void myFunction(int x) {
        cout << "Value of x is: " << MyClass::x;
    }
};

int MyClass::x = 50;

int main() {
    MyClass ob1;
    ob1.myFunction(40);
    return 0;
}

आउटपुट

Value of x is: 50
  1. - PHP स्कोप रिज़ॉल्यूशन ऑपरेटर (Scope Resolution Operator ::) - Paamayim Nekudotayim

    परिचय PHP में, डबल कोलन :: को स्कोप रिज़ॉल्यूशन ऑपरेटर (Scope Resolution Operator) के रूप में परिभाषित किया गया है। इसका उपयोग तब किया जाता है जब हम क्लास स्तर पर परिभाषित कॉन्स्टेंट्स, प्रॉपर्टीज और मेथड्स तक पहुँचना चाहते हैं। इन आइटम्स को क्लास परिभाषा के बाहर संदर्भित करते समय, क्लास के नाम का

  1. - C# में Scope Resolution Operator क्या है?

    C# में Scope Resolution Operator का अर्थ C++ की तुलना में अलग है। C++ में :: Global Variables के लिए उपयोग किया जाता है, जबकि C# में यह Namespaces से Related है।यदि आपके पास एक Type है जो Different Namespaces में Identifier Share करता है, तो उन्हें Identify करने के लिए Scope Resolution Operator का उ

  1. - C# में स्कोप रेज़ोल्यूशन ऑपरेटर (::) का उपयोग कहाँ करते हैं?

    C++ में स्कोप रेज़ोल्यूशन ऑपरेटर यानी :: का उपयोग ग्लोबल वेरिएबल्स के लिए किया जाता है, जबकि C# में यह नेमस्पेस से संबंधित है।यदि आपके पास एक टाइप है जो अलग-अलग नेमस्पेस में एक ही आइडेंटिफायर साझा करता है, तो उनकी पहचान करने के लिए स्कोप रेज़ोल्यूशन ऑपरेटर का उपयोग करें।उदाहरण के लिए, System.Console