C++ में स्टैटिक क्लास जैसी कोई चीज नहीं है। सबसे निकटतम सन्निकटन एक क्लास है जिसमें केवल स्टैटिक डेटा मेंबर्स और स्टैटिक मेथड्स होते हैं।
क्लास में स्टैटिक डेटा मेंबर्स क्लास के सभी ऑब्जेक्ट्स द्वारा साझा किए जाते हैं क्योंकि मेमोरी में उनकी केवल एक कॉपी होती है, चाहे क्लास के ऑब्जेक्ट्स की संख्या कुछ भी हो। क्लास में स्टैटिक मेथड्स केवल स्टैटिक डेटा मेंबर्स, अन्य स्टैटिक मेथड्स या क्लास के बाहर के किसी भी मेथड को एक्सेस कर सकते हैं।
C++ में क्लास में स्टैटिक डेटा मेंबर्स और स्टैटिक मेथड्स को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है।
उदाहरण
#include <iostream> using namespace std; class Example { public : static int a; static int func(int b) { cout << "स्टैटिक मेंबर फंक्शन कॉल किया गया"; cout << "\nb का मान है: " << b; } }; int Example::a=28; int main() { Example obj; Example::func(8); cout << "\nस्टैटिक डेटा मेंबर a का मान है: " << obj.a; return 0; } आउटपुट
उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है।
स्टैटिक मेंबर फंक्शन कॉल किया गया b का मान है: 8 स्टैटिक डेटा मेंबर a का मान है: 28
अब आइए उपरोक्त प्रोग्राम को समझते हैं।
क्लास Example में, a int डेटा टाइप का स्टैटिक डेटा मेंबर है। मेथड func() एक स्टैटिक मेथड है जो "स्टैटिक मेंबर फंक्शन कॉल किया गया" प्रिंट करता है और b का मान प्रदर्शित करता है। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है।
class Example { public : static int a; static int func(int b) { cout << "स्टैटिक मेंबर फंक्शन कॉल किया गया"; cout << "\nThe value of b is: " << b; } }; int Example::a = 28; फंक्शन main() में, Example क्लास का एक ऑब्जेक्ट obj बनाया जाता है। फंक्शन func() को क्लास नेम और स्कोप रेजोल्यूशन ऑपरेटर का उपयोग करके कॉल किया जाता है। फिर a का मान प्रदर्शित किया जाता है। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है।
int main() { Example obj; Example::func(8); cout << "\nस्टैटिक डेटा मेंबर a का मान है: " << obj.a; return 0; }