स्थिर डेटा सदस्य वर्ग के सदस्य होते हैं जिन्हें स्थैतिक कीवर्ड का उपयोग करके घोषित किया जाता है। कक्षा में स्थिर डेटा सदस्य की केवल एक प्रति है, भले ही कई वर्ग वस्तुएं हों। ऐसा इसलिए है क्योंकि सभी ऑब्जेक्ट स्थिर डेटा सदस्य साझा करते हैं। जब प्रथम श्रेणी की वस्तु बनाई जाती है तो स्थिर डेटा सदस्य को हमेशा शून्य से प्रारंभ किया जाता है।
स्थिर डेटा सदस्यों का सिंटैक्स निम्नानुसार दिया गया है -
static data_type data_member_name;
उपरोक्त सिंटैक्स में, स्थिर कीवर्ड का उपयोग किया जाता है। data_type C++ डेटा प्रकार है जैसे int, float आदि। data_member_name डेटा सदस्य को प्रदान किया गया नाम है।
एक प्रोग्राम जो C++ में स्थिर डेटा सदस्यों को प्रदर्शित करता है, वह इस प्रकार दिया गया है -
उदाहरण
#include <iostream> #include<string.h> using namespace std; class Student { private: int rollNo; char name[10]; int marks; public: static int objectCount; Student() { objectCount++; } void getdata() { cout << "Enter roll number: "<<endl; cin >> rollNo; cout << "Enter name: "<<endl; cin >> name; cout << "Enter marks: "<<endl; cin >> marks; } void putdata() { cout<<"Roll Number = "<< rollNo <<endl; cout<<"Name = "<< name <<endl; cout<<"Marks = "<< marks <<endl; cout<<endl; } }; int Student::objectCount = 0; int main(void) { Student s1; s1.getdata(); s1.putdata(); Student s2; s2.getdata(); s2.putdata(); Student s3; s3.getdata(); s3.putdata(); cout << "Total objects created = " << Student::objectCount << endl; return 0; }
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है -
Enter roll number: 1 Enter name: Mark Enter marks: 78 Roll Number = 1 Name = Mark Marks = 78 Enter roll number: 2 Enter name: Nancy Enter marks: 55 Roll Number = 2 Name = Nancy Marks = 55 Enter roll number: 3 Enter name: Susan Enter marks: 90 Roll Number = 3 Name = Susan Marks = 90 Total objects created = 3
उपरोक्त कार्यक्रम में, कक्षा के छात्र के पास तीन डेटा सदस्य होते हैं जो छात्र रोल नंबर, नाम और अंकों को दर्शाते हैं। ऑब्जेक्टकाउंट डेटा सदस्य एक स्थिर डेटा सदस्य है जिसमें कक्षा के छात्र द्वारा बनाई गई वस्तुओं की संख्या होती है। स्टूडेंट () एक कंस्ट्रक्टर है जो हर बार एक नई क्लास ऑब्जेक्ट बनने पर ऑब्जेक्ट काउंट को बढ़ाता है।
कक्षा में 2 सदस्य कार्य हैं। फ़ंक्शन getdata() उपयोगकर्ता से डेटा प्राप्त करता है और putdata() डेटा प्रदर्शित करता है। इसके लिए कोड स्निपेट इस प्रकार है -
class Student { private: int rollNo; char name[10]; int marks; public: static int objectCount; Student() { objectCount++; } void getdata() { cout << "Enter roll number: "<<endl; cin >> rollNo; cout << "Enter name: "<<endl; cin >> name; cout << "Enter marks: "<<endl; cin >> marks; } void putdata() { cout<<"Roll Number = "<< rollNo <<endl; cout<<"Name = "<< name <<endl; cout<<"Marks = "<< marks <<endl; cout<<endl; } };
फ़ंक्शन मुख्य () में, कक्षा के छात्र यानी s1, s2 और s3 के तीन ऑब्जेक्ट हैं। इनमें से प्रत्येक ऑब्जेक्ट के लिए getdata() और putdata() कहा जाता है। अंत में, ऑब्जेक्टकाउंट का मान प्रदर्शित होता है। यह नीचे दिया गया है -
int main(void) { Student s1; s1.getdata(); s1.putdata(); Student s2; s2.getdata(); s2.putdata(); Student s3; s3.getdata(); s3.putdata(); cout << "Total objects created = " << Student::objectCount << endl; return 0; }