BCA / B.Tech 11 min read

Static Member in Hindi

Static Member in C++ in Hindi | C++ में स्टेटिक मेंबर :

C++ प्रोग्रामिंग भाषा में, स्टेटिक मेंबर (Static Member) एक ऐसी महत्वपूर्ण सुविधा है जो क्लास के सदस्यों (मेंबर वेरिएबल्स और मेंबर फंक्शन्स) को static कीवर्ड के साथ घोषित करके दी जाती है।
 यह सुविधा ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) के कॉन्सेप्ट में एक अनूठी भूमिका निभाती है, क्योंकि स्टेटिक मेंबर हर एक ऑब्जेक्ट के लिए अलग-अलग ना होकर, पूरी क्लास के लिए साझा (shared) होते हैं।

स्टेटिक मेंबर की परिभाषा :

स्टेटिक डेटा मेंबर (Static Data Member): एक स्टेटिक डेटा मेंबर एक ऐसा वेरिएबल होता है, जो एक क्लास के सभी ऑब्जेक्ट्स के लिए साझा होता है।

 इसे केवल एक बार मेमोरी में आवंटित किया जाता है और इसे क्लास के सभी ऑब्जेक्ट्स द्वारा एक्सेस किया जा सकता है। इसका जीवनकाल पूरे प्रोग्राम के दौरान रहता है।

स्टेटिक मेंबर फंक्शन (Static Member Function): स्टेटिक मेंबर फंक्शन एक ऐसा फंक्शन होता है जिसे क्लास के किसी विशेष ऑब्जेक्ट से नहीं, 

बल्कि सीधे क्लास से ही कॉल किया जाता है। यह केवल स्टेटिक डेटा मेंबर्स को एक्सेस कर सकता है।

Static Data Member in C++ in Hindi | स्टेटिक डेटा मेंबर :

स्टेटिक डेटा मेंबर एक क्लास का वेरिएबल होता है जिसे क्लास के हर ऑब्जेक्ट के लिए साझा किया जाता है। इसे static कीवर्ड के साथ घोषित किया जाता है। यह वेरिएबल क्लास की सभी इंस्टेंस के बीच साझा होता है और इसे क्लास के बाहर एक बार डिफाइन किया जाता है।

स्टेटिक डेटा मेंबर की विशेषताएँ :

  • साझा मेमोरी: यह सभी ऑब्जेक्ट्स के लिए साझा होता है। इसका मतलब है कि क्लास के सभी ऑब्जेक्ट्स के लिए इसका केवल एक कॉपी ही मेमोरी में स्टोर किया जाता है।
  • क्लास के अंदर डिक्लेरेशन और बाहर डिफिनिशन: इसे क्लास के अंदर डिक्लेयर किया जाता है, लेकिन क्लास के बाहर डिफाइन किया जाता है।
  • क्लास द्वारा एक्सेस: इसे क्लास नाम के माध्यम से एक्सेस किया जा सकता है।
  • Lifetime: स्टेटिक डेटा मेंबर का जीवनकाल पूरे प्रोग्राम के दौरान होता है।

उदाहरण :

#include <iostream>
using namespace std;

class Test {
public:
    static int count;  // स्टेटिक डेटा मेंबर की घोषणा

    Test() {
        count++;  // हर बार कंस्ट्रक्टर कॉल होने पर count बढ़ेगा
    }

    void showCount() {
        cout << "Total objects created: " << count << endl;
    }
};

// स्टेटिक डेटा मेंबर की डिफिनिशन और इनिशलाइजेशन
int Test::count = 0;

int main() {
    Test t1, t2, t3;

    t1.showCount();  // 3 ऑब्जेक्ट बनाए गए हैं
    t2.showCount();  // सभी ऑब्जेक्ट्स के लिए साझा डेटा मेंबर है

    return 0;
}

कार्यप्रणाली :

  • यहां Test क्लास में एक स्टेटिक डेटा मेंबर count है, जो कि सभी ऑब्जेक्ट्स द्वारा साझा किया गया है।
  • जब भी एक नया ऑब्जेक्ट t1, t2, और t3 बनाया जाता है, तब कंस्ट्रक्टर में count को इंक्रीमेंट किया जाता है।
  • t1.showCount() और t2.showCount() दोनों में ही count की वैल्यू 3 रहती है क्योंकि सभी ऑब्जेक्ट्स एक ही स्टेटिक मेंबर को शेयर कर रहे हैं।

Static Member Function in C++ in Hindi | स्टेटिक मेंबर फंक्शन :

स्टेटिक मेंबर फंक्शन वह फंक्शन होता है जिसे static कीवर्ड के साथ घोषित किया जाता है। स्टेटिक फंक्शन का सबसे बड़ा लाभ यह है कि इसे क्लास के ऑब्जेक्ट के बिना सीधे क्लास द्वारा कॉल किया जा सकता है।

स्टेटिक मेंबर फंक्शन की विशेषताएँ :

ऑब्जेक्ट की आवश्यकता नहीं: इसे कॉल करने के लिए किसी ऑब्जेक्ट की आवश्यकता नहीं होती। इसे सीधे क्लास नाम के साथ कॉल किया जा सकता है।
स्टेटिक डेटा मेंबर तक पहुंच: यह केवल स्टेटिक डेटा मेंबर्स को एक्सेस कर सकता है और नॉन-स्टेटिक मेंबर्स को एक्सेस नहीं कर सकता।
क्लास का सदस्य: यह क्लास का सदस्य होता है और इसे सामान्य फंक्शन्स की तरह भी काम में लिया जा सकता है।

उदाहरण :

#include <iostream>
using namespace std;

class Test {
private:
    static int count;  // स्टेटिक डेटा मेंबर

public:
    Test() {
        count++;
    }

    static void showCount() {  // स्टेटिक मेंबर फंक्शन
        cout << "Total objects created: " << count << endl;
    }
};

// स्टेटिक डेटा मेंबर की डिफिनिशन
int Test::count = 0;

int main() {
    Test t1, t2, t3;

    // स्टेटिक मेंबर फंक्शन को ऑब्जेक्ट के बिना कॉल किया जा सकता है
    Test::showCount();  // 3 ऑब्जेक्ट बनाए गए हैं

    return 0;
}

कार्यप्रणाली :

  • यहां Test क्लास में count स्टेटिक डेटा मेंबर है और showCount स्टेटिक मेंबर फंक्शन है।
  • स्टेटिक मेंबर फंक्शन showCount() को सीधे Test::showCount() के रूप में क्लास द्वारा एक्सेस किया जा सकता है, बिना किसी ऑब्जेक्ट के।
  • इस फंक्शन में केवल स्टेटिक डेटा मेंबर count को एक्सेस किया जा रहा है।

Advantages of Static Members in C++ in Hindi | स्टेटिक मेंबर के लाभ :

  • मेमोरी का कुशल उपयोग: स्टेटिक डेटा मेंबर के लिए मेमोरी केवल एक बार अलोकेट की जाती है और यह सभी ऑब्जेक्ट्स के लिए साझा होता है, जिससे मेमोरी का कुशल उपयोग होता है।
  • क्लास द्वारा एक्सेस: स्टेटिक मेंबर को ऑब्जेक्ट की आवश्यकता के बिना सीधे क्लास द्वारा एक्सेस किया जा सकता है।
  • डाटा साझा करना: स्टेटिक डेटा मेंबर का उपयोग क्लास के सभी ऑब्जेक्ट्स के बीच साझा डेटा को ट्रैक करने के लिए किया जा सकता है, जैसे ऑब्जेक्ट्स की संख्या, या किसी विशेष डेटा का काउंट।
Disadvantages of Static Members in C++ in Hindi | स्टेटिक मेंबर की सीमाएँ :

  • ग्लोबल जैसा व्यवहार: स्टेटिक मेंबर का व्यवहार ग्लोबल वेरिएबल्स जैसा होता है, जिससे अगर इसका सही तरीके से उपयोग नहीं किया गया, तो यह प्रोग्राम में जटिलता पैदा कर सकता है।
  • नॉन-स्टेटिक मेंबर तक पहुंच नहीं: स्टेटिक मेंबर फंक्शन्स केवल स्टेटिक डेटा मेंबर्स को ही एक्सेस कर सकते हैं, वे क्लास के नॉन-स्टेटिक मेंबर्स तक पहुंच नहीं सकते।