C++ Academy · पाठ

this pointer और encapsulation

this pointer का उपयोग करें और private तथा public access से encapsulation लागू करें।

पाठ 4, कुल 4 में से13 चरण

this pointer और encapsulation, CoddyKit पर C++ Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह C++ Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

यह क्या है?

किसी गैर-स्टैटिक सदस्य फ़ंक्शन के अंदर this वर्तमान ऑब्जेक्ट का अंतर्निहित पॉइंटर होता है। अस्पष्टता दूर करने या रेफ़रेंस लौटाने के लिए इसका उपयोग करें।

class Counter {
    int n_ = 0;
public:
    Counter& add(int x) {
        n_ += x;       // implicit this
        return *this;  // chain calls
    }
};

अंतर्निहित पहुँच

आमतौर पर आपको this-> लिखने की आवश्यकता नहीं होती। सदस्य नाम अपने-आप खोजे जाते हैं — this->n_ और n_ समान हैं।

this-> कब आवश्यक होता है

जब कोई पैरामीटर किसी सदस्य को छिपा देता है, या जब टेम्पलेट लुकअप को विरासत में मिले सदस्यों को खोजने में सहायता चाहिए हो, तब this-> का उपयोग करें।

class Person {
    std::string name_;
public:
    void setName(const std::string& name) {
        this->name_ = name;  // or name_ = name;
    }
};

चेनिंग के लिए *this लौटाना

फ्लुएंट इंटरफ़ेस का समर्थन करने के लिए *this लौटाएँ।

class StringBuilder {
    std::string s_;
public:
    StringBuilder& append(const std::string& part) {
        s_ += part;
        return *this;
    }
};

StringBuilder sb;
sb.append("Hello, ").append("World!");

Const मेथड में this

किसी const मेथड के अंदर this का प्रकार const ClassName* होता है। इसके माध्यम से आप सदस्यों को बदल नहीं सकते।

एनकैप्सुलेशन: मुख्य विचार

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

class Stack {
    std::vector<int> data_;     // hidden
public:
    void push(int v) { data_.push_back(v); }
    int  pop()       { int v = data_.back(); data_.pop_back(); return v; }
    bool empty() const { return data_.empty(); }
};

एनकैप्सुलेशन क्यों करें?

एनकैप्सुलेशन आपको ये कार्य करने देता है:

  • कॉल करने वाले कोड को बदले बिना आंतरिक निरूपण बदलना
  • इनवेरिएंट को एक ही स्थान पर लागू करना
  • सीमा पर इनपुट का सत्यापन करना
  • ऑब्जेक्ट की स्थिति के बारे में स्थानीय रूप से तर्क करना

सार्वजनिक इंटरफ़ेस = अनुबंध

सार्वजनिक इंटरफ़ेस, कॉल करने वालों से किया गया वादा होता है। इसे छोटा, उद्देश्यपूर्ण और स्थिर रखें। कार्यान्वयन के विवरण निजी रखें।

गेटर और सेटर

यह एक सामान्य पैटर्न है, लेकिन इसका आसानी से अत्यधिक उपयोग हो सकता है। हर सदस्य के लिए get/set की जोड़ी बनाने से बचें — इससे एनकैप्सुलेशन का उद्देश्य ही समाप्त हो जाता है। फ़ील्ड नहीं, बल्कि ऑपरेशन उपलब्ध कराएँ।

फिर से Const शुद्धता

हर केवल-पढ़ने वाले मेथड को const चिह्नित करें। कॉल करने वालों को पता रहता है कि कौन-से मेथड const इंस्टेंस पर कॉल करना सुरक्षित है और कंपाइलर इसे लागू करता है।

Friend फ़ंक्शन और क्लास

friend कीवर्ड किसी दूसरे फ़ंक्शन या क्लास को निजी सदस्यों तक पहुँच देता है। इसका उपयोग कम करें — यह युग्मन को अधिक कड़ा बनाता है।

class Account {
    double balance_;
    friend void transfer(Account& a, Account& b, double amount);
};

त्वरित जाँच

क्लास Foo के अंदर void f() const के रूप में घोषित मेथड में this का प्रकार क्या है?

पुनरावृत्ति

गैर-स्टैटिक मेथड के अंदर this वर्तमान ऑब्जेक्ट की ओर संकेत करता है। चेनिंग (return *this) और अस्पष्टता दूर करने के लिए इसका उपयोग करें। निजी डेटा और छोटे, उद्देश्यपूर्ण सार्वजनिक इंटरफ़ेस के माध्यम से स्थिति को एनकैप्सुलेट करें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ C++ सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “this pointer और encapsulation” पाठ निःशुल्क है?

हाँ — C++ Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “this pointer और encapsulation” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“this pointer और encapsulation” में मैं क्या सीखूँगा?

this pointer का उपयोग करें और private तथा public access से encapsulation लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C++ Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C++ Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C++ Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“this pointer और encapsulation” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C++ Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C++ Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. struct बनाम class: किसका उपयोग करें
  2. सदस्य चर और methods
  3. Constructors और member initializer lists
  4. this pointer और encapsulation
← C++ Academy पर वापस जाएँ