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

C++ में वेरिएबल के स्टोरेज क्लासेस क्या हैं?


स्टोरेज क्लास एक C++ प्रोग्राम के भीतर वेरिएबल और/या फंक्शन्स के स्कोप (दृश्यता) और लाइफ-टाइम को परिभाषित करता है। ये विनिर्देशक उस प्रकार से पहले होते हैं जिसे वे संशोधित करते हैं। निम्नलिखित भंडारण वर्ग हैं, जिनका उपयोग C++ प्रोग्राम में किया जा सकता है।

  • स्वतः
  • पंजीकरण
  • स्थिर
  • बाहरी
  • परिवर्तनीय

सी में, ऑटो स्टोरेज क्लास स्पेसिफायर आपको स्वचालित स्टोरेज के साथ एक वेरिएबल को स्पष्ट रूप से घोषित करने देता है। एक ब्लॉक के अंदर घोषित चर के लिए ऑटो स्टोरेज क्लास डिफ़ॉल्ट है। जिस ब्लॉक में x घोषित किया गया था, उस ब्लॉक से बाहर निकलने पर स्वचालित संग्रहण वाला एक चर x हटा दिया जाता है।

आप केवल ब्लॉक में घोषित चर के नाम या फ़ंक्शन पैरामीटर के नाम पर ऑटो स्टोरेज क्लास विनिर्देशक लागू कर सकते हैं। हालाँकि, इन नामों में डिफ़ॉल्ट रूप से स्वचालित संग्रहण होता है। इसलिए स्टोरेज क्लास स्पेसिफायर ऑटो आमतौर पर डेटा डिक्लेरेशन में बेमानी होता है।

इसे शुरू में केवल वाक्य-विन्यास संगतता के लिए C++ में ले जाया गया था, हालांकि बाद में इसका अपना अर्थ, स्वचालित प्रकार की कटौती हो गई।

सी में, रजिस्टर स्टोरेज क्लास विनिर्देशक संकलक को इंगित करता है कि ऑब्जेक्ट को मशीन रजिस्टर में संग्रहीत किया जाना चाहिए। एक्सेस टाइम को कम करके प्रदर्शन को बढ़ाने की उम्मीद में रजिस्टर स्टोरेज क्लास स्पेसिफायर आमतौर पर भारी उपयोग किए जाने वाले चर, जैसे लूप कंट्रोल वेरिएबल के लिए निर्दिष्ट किया जाता है। हालांकि, कंपाइलर को इस अनुरोध का सम्मान करने की आवश्यकता नहीं है। अधिकांश प्रणालियों पर उपलब्ध सीमित आकार और रजिस्टरों की संख्या के कारण, कुछ चर वास्तव में रजिस्टरों में रखे जा सकते हैं।

स्टैटिक स्टोरेज क्लास कंपाइलर को प्रोग्राम के जीवन-काल के दौरान एक स्थानीय वैरिएबल को अस्तित्व में रखने के लिए निर्देश देता है, न कि हर बार इसे बनाने और नष्ट करने के लिए और इसके दायरे से बाहर हो जाता है। इसलिए, स्थानीय चर को स्थिर बनाने से वे फ़ंक्शन कॉल के बीच अपने मान बनाए रख सकते हैं।

बाहरी भंडारण वर्ग विनिर्देशक आपको उन वस्तुओं को घोषित करने देता है जिनका उपयोग कई स्रोत फ़ाइलें कर सकती हैं। एक बाहरी घोषणा वर्णित चर को वर्तमान स्रोत फ़ाइल के अगले भाग द्वारा प्रयोग करने योग्य बनाती है। यह घोषणा परिभाषा को प्रतिस्थापित नहीं करती है। घोषणा का उपयोग बाहरी रूप से परिभाषित चर का वर्णन करने के लिए किया जाता है।

म्यूटेबल स्टोरेज क्लास स्पेसिफायर का उपयोग केवल क्लास डेटा सदस्य पर किया जाता है ताकि इसे संशोधित किया जा सके, भले ही सदस्य कॉन्स्ट के रूप में घोषित ऑब्जेक्ट का हिस्सा हो। आप स्थिर या स्थिरांक, या संदर्भ सदस्यों के रूप में घोषित नामों के साथ परिवर्तनशील विनिर्देशक का उपयोग नहीं कर सकते।

उदाहरण

class A
{
   public:
   A() : x(4), y(5) { };
   mutable int x;
   int y;
};

int main()
{
   const A var2;
   var2.x = 345;
   // var2.y = 2345;
}

कंपाइलर असाइनमेंट var2.y =2345 की अनुमति नहीं देगा क्योंकि var2 को const के रूप में घोषित किया गया है। कंपाइलर असाइनमेंट var2.x =345 की अनुमति देगा क्योंकि A::x को परिवर्तनशील घोषित किया गया है।



  1. सी # में नेस्टेड कक्षाएं क्या हैं?

    एक नेस्टेड वर्ग एक अन्य संलग्न वर्ग में घोषित एक वर्ग है। यह अपने संलग्न वर्ग का सदस्य है और एक संलग्न वर्ग के सदस्यों के पास नेस्टेड वर्ग के सदस्यों तक पहुंच नहीं है। आइए C# में नेस्टेड कक्षाओं का एक उदाहरण कोड स्निपेट देखें - class One {    public int num1;    public class Tw

  1. सी # में कक्षाएं क्या हैं?

    जब आप एक वर्ग को परिभाषित करते हैं, तो आप डेटा प्रकार के लिए एक खाका परिभाषित करते हैं। ऑब्जेक्ट एक वर्ग के उदाहरण हैं। एक वर्ग का गठन करने वाली विधियों और चरों को वर्ग के सदस्य कहा जाता है। क्लास की परिभाषा कीवर्ड क्लास से शुरू होती है और उसके बाद क्लास का नाम आता है; और वर्ग निकाय घुंघराले ब्रेसि

  1. C# में किसी वर्ग के सदस्य चर क्या हैं?

    एक वर्ग एक खाका है जिसमें सदस्य चर और सी # में कार्य होते हैं। यह किसी वस्तु के व्यवहार का वर्णन करता है। सदस्य चर क्या हैं, यह जानने के लिए आइए कक्षा के सिंटैक्स को देखें - <access specifier> class class_name {    // member variables    <access specifier> <data t