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

सी ++ में स्टेटिक डेटा सदस्य


स्थिर डेटा सदस्य वर्ग के सदस्य होते हैं जिन्हें स्थैतिक कीवर्ड का उपयोग करके घोषित किया जाता है। कक्षा में स्थिर डेटा सदस्य की केवल एक प्रति है, भले ही कई वर्ग वस्तुएं हों। ऐसा इसलिए है क्योंकि सभी ऑब्जेक्ट स्थिर डेटा सदस्य साझा करते हैं। जब प्रथम श्रेणी की वस्तु बनाई जाती है तो स्थिर डेटा सदस्य को हमेशा शून्य से प्रारंभ किया जाता है।

स्थिर डेटा सदस्यों का सिंटैक्स निम्नानुसार दिया गया है -

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;
}

  1. सी ++ प्रोग्राम में स्टेटिक सदस्य फ़ंक्शन का उपयोग करके ऑब्जेक्ट्स की संख्या की गणना करें

    यहाँ लक्ष्य एक वर्ग की वस्तुओं की संख्या की गणना करना है जो एक स्थिर सदस्य फ़ंक्शन का उपयोग करके बनाए जा रहे हैं। एक स्थिर डेटा सदस्य आमतौर पर कक्षा की सभी वस्तुओं द्वारा साझा किया जाता है। यदि कोई मान नहीं दिया जाता है, तो एक स्थिर डेटा सदस्य को हमेशा 0 से प्रारंभ किया जाता है। एक स्थिर सदस्य फ़ं

  1. C++ में सर्कुलर कतार डेटा संरचना

    एक कतार एक सार डेटा संरचना है जिसमें तत्वों का संग्रह होता है। Queue FIFO तंत्र को लागू करता है अर्थात जो तत्व पहले डाला जाता है उसे भी पहले हटा दिया जाता है। कतार गन्ना एक रैखिक डेटा संरचना हो सकती है। लेकिन अगर हम सरणी का उपयोग करके कतार को लागू करते हैं तो यह कुछ समस्या पैदा कर सकता है। कभी-कभी

  1. सी ++ में बाइनरी ट्री का संक्षिप्त एन्कोडिंग

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है। जैसा कि हम जानते हैं कि बाइनरी ट्री का संक्षिप्त एन्कोडिंग न्यूनतम संभव स्थान के करीब प्रदर्शन करता है। nth कातालान संख्या n विभिन्न नोड्स के साथ संरचनात्मक रूप से भिन्न बाइनरी ट्री की संख्या द्वारा निर्दिष्ट है। यदि n बड़ा है, तो यह लगभग 4n है; इस प्रकार, ह