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

C++ में प्राइवेट स्टेटिक मेंबर्स को इनिशियलाइज़ कैसे करें?


यहाँ हम देखेंगे कि C++ में प्राइवेट स्टेटिक मेंबर वेरिएबल्स को कैसे इनिशियलाइज़ किया जाता है। हम C++ क्लासेस में स्टेटिक मेंबर्स (फंक्शन्स या वेरिएबल्स) रख सकते हैं। स्टेटिक वेरिएबल्स के लिए, हमें क्लास को परिभाषित करने के बाद उन्हें इनिशियलाइज़ करना होता है।

इनिशियलाइज़ करने के लिए हमें क्लास नाम, फिर स्कोप रिज़ॉल्यूशन ऑपरेटर (::), फिर वेरिएबल नाम का उपयोग करना होता है। अब हम कुछ मान असाइन कर सकते हैं।

निम्नलिखित कोड स्टेटिक मेंबर इनिशियलाइज़ेशन तकनीक को दर्शाता है।

उदाहरण

#include <iostream>
using namespace std;

class MyClass {
private:
    static int st_var;
public:
    MyClass() {
        st_var++; // नया ऑब्जेक्ट बनने पर st_var बढ़ाएं
    }
    static int getStaticVar() {
        return st_var;
    }
};

// क्लास के बाहर स्टेटिक वेरिएबल को परिभाषित और इनिशियलाइज़ करें
int MyClass::st_var = 0;

int main() {
    MyClass ob1, ob2, ob3; // तीन ऑब्जेक्ट्स बनाए गए
    cout << "Number of objects: " << MyClass::getStaticVar();
    return 0;
}

आउटपुट

Number of objects: 3

मुख्य बिंदु

  1. घोषणा क्लास के अंदर: static int st_var; (केवल घोषणा, परिभाषा नहीं)।
  2. परिभाषा क्लास के बाहर: int MyClass::st_var = 0; (मेमोरी आवंटित होती है यहाँ)।
  3. यह ग्लोबल स्कोप में होनी चाहिए, किसी फंक्शन के अंदर नहीं।
  4. const static इंटीग्रल टाइप्स को क्लास के अंदर इनिशियलाइज़ किया जा सकता है (C++11 से)।
  5. C++17 से inline static वेरिएबल्स को क्लास के अंदर ही परिभाषित किया जा सकता है।

C++17 इंलाइन स्टेटिक उदाहरण

class MyClass {
public:
    inline static int st_var = 0; // C++17: क्लास के अंदर परिभाषा
    MyClass() { st_var++; }
    static int getCount() { return st_var; }
};
  1. जावास्क्रिप्ट में कॉमन इंस्टेंसेज के बीच प्राइवेट मेंबर्स कैसे शेयर करें? जावास्क्रिप्ट में कॉमन इंस्टेंसेज के बीच प्राइवेट मेंबर्स कैसे शेयर करें?

    जावास्क्रिप्ट में कॉमन इंस्टेंसेज के बीच प्राइवेट मेंबर्स शेयर करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <

  1. - C++ में वेरिएबल को कैसे इनिशियलाइज़ करें?

    आप असाइनमेंट ऑपरेटर का उपयोग करके या इसे इनिशियलाइज़ करते समय इसके कंस्ट्रक्टर का उपयोग करके वेरिएबल को इनिशियलाइज़ कर सकते हैं। उदाहरण के लिए, int i = 0; MyClass instance(1, Hello); यह स्वचालित रूप से इनिशियलाइज़ हो जाएगा यदि यह एक क्लास/स्ट्रक्चर इंस्टेंस है जिसमें डिफ़ॉल्ट कंस्ट्रक्टर सभी प्रिम

  1. - C++ में new ऑपरेटर से मेमोरी कैसे इनिशियलाइज़ करें?

    C++ में new ऑपरेटर मेमोरी आवंटित करने के लिए परिभाषित है, इनिशियलाइज़ करने के लिए नहीं। यदि आप int प्रकार का एक ऐरे new ऑपरेटर से आवंटित करना चाहते हैं, और आप उन सभी को डिफ़ॉल्ट मान (यानी int के मामले में 0) से इनिशियलाइज़ करना चाहते हैं, तो आप निम्न सिंटैक्स का उपयोग कर सकते हैं: सिंटैक्स new int[