Data hiding c++ In Hindi

Data hiding c++ In Hindi

C++ प्रोग्रामिंग लैंग्वेज में डेटा हाइड फीचर्स, C++ एनकैप्सुलेशन के फंडामेंटल कांसेप्ट में से एक है. जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) के मुख्य फोर फंडामेंटल पिलर्स कांसेप्ट में से एक है। डेटा हाइडिंग फीचर्स किसी यूजर डिफाइन मौजूदा क्लास के इंटरनल डेटा इनफार्मेशन तक एक्सेस को ब्लॉक करने और उसे बिना परमिशन या अनचाहे डाटा इनफार्मेशन को एक्सेस और किसी भी प्रकार के डाटा मॉडिफिकेशन कांसेप्ट को अवॉयड करने के बिहैवियर को इंडीकेट करता है। C++ क्लास में डेटा हाइडिंग फीचर्स यह फिक्स करता है कि किसी यूजर डिफाइन क्लास ऑब्जेक्ट की इंटरनल स्टेट को सिर्फ़ अच्छी तरह से डिफाइन किए गए इंटरफ़ेस (जैसे, पब्लिक क्लास मेंबर फ़ंक्शन) के माध्यम से  ही एक्सेस और मैनेज किया जा सके, न कि डायरेक्ट क्लास में किसी के द्वारा भी बाहर से एक्सेस किया जा सके।

Data hiding c++ In Hindi

C++ प्रोग्रामिंग में, डेटा हाइडिंग एक्सेस स्पेसिफायर कांसेप्ट में C++ यूजर (पब्लिक, प्राइवेट, प्रोटेक्टेड) ​​क्लास मेथड के माध्यम से इसके एलिमेंट को एक्सेस कर सकते है. जो मौजूदा यूजर डिफाइन क्लास मेंबर्स पैरामीटर (वेरिएबल और क्लास मेथड) की विज़िबिलिटी और एक्सेसिबिलिटी को कंट्रोल और मैनेज करते हैं।

Key Advanced Features of Data Hiding in C++ Programming.

Encapsulation Concept in Data Hiding.

किसी C++ प्रोग्राम में डेटा हाइडिंग OOP में एनकैप्सुलेशन का एक इम्पोर्टेन्ट कांसेप्ट है, जहाँ किसी यूजर डिफाइन क्लास ऑब्जेक्ट की इंटरनल स्टेट क्लास (डेटा) एलिमेंट को ऑब्जेक्ट के अंदर ही एनकैप्सुलेट या प्रोटेक्ट किया जाता है, और उस कंडीशन या स्टेट तक क्लास मेंबर्स डाटा टाइप एक्सेस को पब्लिक क्लास मेथड जिसमे (गेटर्स और सेटर्स) फीचर्स के माध्यम से कंट्रोल और मैनेज किया जाता है।

Access Specifier Concept in Data Hiding.

C++ क्लास प्रोगाम में डेटा हाइडिंग का सबसे बेसिक और एक इम्पोर्टेन्ट क्लास एलिमेंट मेंबर्स जिसमे यूजर डिफाइन क्लास पैरामीटर (वेरिएबल्स और मेथड्स) की विज़िबिलिटी को कंट्रोल और मैनेज करने के लिए पब्लिक, प्राइवेट, प्रोटेक्टेड क्लास एक्सेस स्पेसिफायर का यूज़ करना है।

There are three main access specifiers in a C++ class program.

  • Private access specifiers – यूजर डिफाइन क्लास में प्राइवेट वेरिएबल पैरामीटर मेंबर्स सिर्फ़ उसी क्लास के अंदर या फ्रेंड क्लास/फ़ंक्शन से ही एक्सेस और कण्ट्रोल किए जा सकते हैं।
  • Protected access specifiers – यूजर डिफाइन क्लास में प्रोटेक्टेड वेरिएबल पैरामीटर मेंबर्स सिर्फ उस क्लास और डिराइव्ड क्लास के अंदर से ही एक्सेस और मैनेज किए जा सकते हैं. लेकिन उन्हें मौजूदा क्लास के बाहर से एक्सेस और मैनेज नहीं किया जा सकता नहीं है।
  • Public access specifiers – यूजर डिफाइन क्लास में पब्लिक वेरिएबल पैरामीटर मेंबर्स कहीं से भी (क्लास के बाहर) से भी यानि क्लास के अंदर और बाहर दोनों से  एक्सेस और मैनेज किए जा सकते हैं।

Getter and Setter Methods Concept in Data Hiding.

  • C++ क्लास प्रोगाम में गेटर क्लास मेथड्स का यूज़ प्राइवेट क्लास डेटा मेंबर वेरिएबल को एक्सेस करने में किया जाता है।
  • C++ क्लास प्रोगाम में सेटर मेथड्स का यूज़ प्राइवेट क्लास डेटा को मॉडिफ़ाई करने में किया जाता है।
  • C++ क्लास प्रोगाम में गेटर और सेटर मेथड्स का यूज़ करके, C++ यूजर अपने मौजूदा प्रोग्राम की डेटा इंटीग्रिटी को मेन्टेन करते हुए क्लास के प्राइवेट मेंबर्स तक कंट्रोल्ड एक्सेस की परमिशन एक्सेस करते हैं।

Why is data hiding important in C++ class programs?

Object State Protection Concept in Data Hiding.

C++ क्लास प्रोगाम में इंटरनल क्लास डेटा मेंबर्स पैरामीटर को हाइड कर, C++ यूजर यह फिक्स करते हैं कि मौजूदा क्लास पैरामीटर मेंबर्स ऑब्जेक्ट का स्टेट अनचाहे आर्डर में मॉडिफाई न किया जा सके। डेटा हाइड फीचर्स क्लास में डेटा के करप्शन को ब्लॉक करता है, और मौजूदा क्लास डाटा कंसिस्टेंसी एफ्फिसिएन्सिसी को मेन्टेन करने में हेल्प करता है।

Control over Modification Concept in Data Hiding.

C++ क्लास प्रोगाम में सेटर मेथड्स से C++ यूजर प्राइवेट क्लास मेंबर्स डाटा को असाइन की गई वैल्यू को कंट्रोल और मैनेज कर सकते हैं। जैसे, C++ यूजर किसी मौजूदा क्लास मेंबर्स में मॉडिफिकेशन की परमिशन प्रोवाइड करने ने से पहले उसके इनपुट को वैलिडेट कर सकते हैं।

Easy Maintenance Concept in Data Hiding.

जैसाकि डेटा हाइडिंग फीचर्स में क्लास का इंटरनल स्ट्रक्चर एक्सटर्नल कोड से पूरी तरह हाइड होता है. इस वजह से C++ यूजर मौजूदा क्लास का यूज़ करने वाले कोड पर डायरेक्ट इम्पैक्ट किए बिना इम्प्लीमेंटेशन डिटेल्स को मॉडिफाई कर सकते हैं। जैसे, C++ यूजर को इंटरनल क्लास डेटा मेंबर स्ट्रक्चर को मॉडिफाई करने की ज़रूरत है. तो C++ यूजर एक्सटर्नल कोड को ब्रेक किए बिना ऐसा तुरंत कर सकते हैं।

Security Concept in Data Hiding.

C++ क्लास प्रोगाम में डेटा हाइडिंग फीचर्स सेंसिटिव डेटा तक डायरेक्ट यूजर एक्सेस को रिस्ट्रिक्ट करके, C++ यूजर इसे फाल्स यूज़ या अनचाहे मॉडिफिकेशन से रिस्ट्रिक्ट करते हैं. स्पेशली एक लार्ज लेवल एप्लिकेशन्स डिज़ाइन और डेवलपमेंट प्रोसेस में।

Data Hiding Example in C++.

#include <iostream>

#include <string>

using namespace std;

class UserAccount {

private:

    string customeraccount;

    double Acbalance;

public:

    // here we create a Constructor method for class

    UserAccount(string cust_name, double startBalance)

        : customeraccount(cust_name), Acbalance(startBalance >= 0 ? startBalance : 0.0) {}

    // here we set a Getter method for account holder’s name

    string getcustomeraccount() const {

        return customeraccount;

    }

    // here we set Getter method for Acbalance

    double getAcbalance() const {

        return Acbalance;

    }

    // here we set Deposit money

    void deposit(double amount) {

        if (amount > 0) {

            Acbalance += amount;

        } else {

            cout << “Invalid deposit amount enter” << endl;

        }

    }

    // here we set Withdraw money

    void withdraw(double amount) {

        if (amount > 0 && amount <= Acbalance) {

            Acbalance -= amount;

        } else {

            cout << “Invalid withdrawal amount or insufficient funds in customer account” << endl;

        }

    }

};

int main() {

    // here we Create a UserAccount object for main class

    UserAccount account(“Siddhi Deora”, 13000.0);

    // here we Display user account details

    cout << “User acccount name – ” << account.getcustomeraccount() << endl;

    cout << “Initial deposite Balance – ” << account.getAcbalance() << endl;

    // here we Perform some deposite and withdraw account transactions

    account.deposit(2000);

    account.withdraw(700);

    // Finally here we Display the updated user Acbalance information

    cout << “Updated User Account Balance – ” << account.getAcbalance() << endl;

    return 0;

}

Detailed explanation of the data hiding example in C++.

Private Class Members.

यहाँ इस एक्साम्प्ल में customeraccount और Acbalance प्राइवेट मेंबर्स के रूप में डिफाइन हैं, इसका मतलब है कि उन्हें UserAccount मैन क्लास के बाहर से डायरेक्ट एक्सेस नहीं किया जा सकता है। यह UserAccount क्लास में इम्पोर्टेन्ट डेटा को हाइड करने का एक इम्पोर्टेन्ट फीचर्स है।

Public Class Methods.

UserAccount क्लास में गेट्टर मेथड्स (getcustomeraccount(), getAcbalance()) क्लास में प्राइवेट डाटा मेंबर्स तक कंट्रोल्ड एक्सेस की परमिशन प्रोवाइड करते हैं। ये मेथड्स एक्सटर्नल वर्ल्ड को customeraccount और Acbalance की वैल्यू को रिटर्न करते हैं।

सेटर मेथड्स क्लास मेथड में (deposit(), withdrawal()) मौजूदा यूजर अकाउंट बैलेंस को मॉडिफाई करते हैं, और यूजर को कंट्रोल्ड एक्सेस की परमिशन प्रोवाइड करते हैं। जैसे, यहाँ withdrawal मेथड मौजूदा प्रोग्राम में यह फिक्स करता है कि इस अकाउंट में विड्रॉल तभी परफॉर्म किया जाए, जब यूजर अकाउंट अमाउंट पॉजिटिव हो और बैलेंस विथड्रॉल के लिए काफ़ी हो।

Data Protection Class Methods.

यहाँ यूजर अकाउंट Acbalance या getcustomeraccount क्लास फील्ड में डायरेक्ट मॉडिफिकेशन क्लास के बाहर से पॉसिबल नहीं है. क्योंकि ये मेंबर्स क्लास में प्राइवेट नेचर में डिक्लेअर होते हैं। इससे यह फिक्स होता है कि मौजूदा क्लास डेटा की इंटीग्रिटी अपने आप में प्रोटेक्टेड डिफाइन है।

Hiding class data members with protected and public.

Private class members.

यूजर डिफाइन क्लास में डिक्लेअर प्राइवेट क्लास मेंबर्स सिर्फ़ उसी क्लास के अंदर ही एक्सेसिबल और मैनेजेबल होते हैं। यह किसी क्लास डाटा मेंबर्स को एक्सेस और कंट्रोल का सबसे स्ट्रिक्ट और बेस्ट चॉइस है, और इसका यूज़ मुख्य रूप से C++ क्लास में एसेंशियल डाटा इनफार्मेशन को हाइड करने में किया जाता है।

protected class members.

यूजर डिफाइन क्लास में डिक्लेअर प्रोटेक्टेड क्लास मेंबर्स उसी क्लास और डिराइव्ड क्लास के अंदर से ही एक्सेसिबल और मैनेजेबल होते हैं. लेकिन किसी क्लास के बाहर से एक्सेसिबल नहीं होते है। प्रोटेक्टेड क्लास मेंबर्स तब यूज़ किए जाते है, जब आप चाहते हैं कि मौजूदा क्लास में डिराइव्ड क्लास डेटा को एक्सेस करें या उसमें जरूरी मॉडिफिकेशन करें, लेकिन फिर भी उसे एक्सटर्नल वर्ल्ड से हाइड करना चाहते हैं।

Public class members.

यूजर डिफाइन क्लास में डिक्लेअर पब्लिक क्लास मेंबर्स को कहीं से भी मौजूदा रुट, डिराइव्ड सबक्लास से एक्सेस और मैनेज किया जा सकता है। यदि इसमें क्लास डेटा मेंबर्स पब्लिक नेचर में डिफाइन हैं, तो इस प्रोसेस में डेटा हाइड का कॉन्सेप्ट कॉम्प्रोमाइज़ हो जाता है।

Leave a Reply