C++ में क्लास में स्टैटिक मेंबर्स को static कीवर्ड का उपयोग करके परिभाषित किया जा सकता है। मेमोरी में स्टैटिक क्लास मेंबर की केवल एक कॉपी होती है, चाहे क्लास के ऑब्जेक्ट्स की संख्या कुछ भी हो। इसलिए स्टैटिक मेंबर सभी क्लास ऑब्जेक्ट्स द्वारा साझा किया जाता है।
स्टैटिक क्लास मेंबर को तब शून्य से इनिशियलाइज़ किया जाता है जब क्लास का पहला ऑब्जेक्ट बनाया जाता है यदि इसे किसी अन्य तरीके से इनिशियलाइज़ नहीं किया जाता है।
स्टैटिक क्लास मेंबर्स की परिभाषा को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है −
उदाहरण
#include <iostream> using namespace std; class Point{ int x; int y; public: static int count; Point(int x1, int y1){ x = x1; y = y1; count++; } void display(){ cout<<"पॉइंट है ("<<x<<","<<y<<")\n"; } }; int Point::count = 0; int main(void){ Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout<<"\nऑब्जेक्ट्स की संख्या है: "<<Point::count; return 0; } उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है −
पॉइंट है (10,5) पॉइंट है (7,9) पॉइंट है (1,2) ऑब्जेक्ट्स की संख्या है: 3
अब आइए उपरोक्त प्रोग्राम को समझते हैं।
क्लास Point में 2 डेटा मेंबर्स x और y हैं जो एक पॉइंट बनाते हैं। एक स्टैटिक मेंबर count भी है जो क्लास Point के बने ऑब्जेक्ट्स की संख्या की निगरानी करता है। कंस्ट्रक्टर Point() x और y के मान इनिशियलाइज़ करता है और फंक्शन display() उनके मान प्रदर्शित करता है। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है −
class Point{ int x; int y; public: static int count; Point(int x1, int y1){ x = x1; y = y1; count++; } void display(){ cout<<"पॉइंट है ("<<x<<","<<y<<")\n"; } }; main() फंक्शन में, Point क्लास के 3 ऑब्जेक्ट्स बनाए गए हैं। फिर इन ऑब्जेक्ट्स के मान display() फंक्शन कॉल करके प्रदर्शित किए जाते हैं। फिर count का मान प्रदर्शित किया जाता है। इसे दिखाने वाला कोड स्निपेट निम्नलिखिक है −
Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout<<"\nऑब्जेक्ट्स की संख्या है: "<<Point::count;