जब स्थिर कीवर्ड का उपयोग किया जाता है, तो चर या डेटा सदस्यों या कार्यों को फिर से संशोधित नहीं किया जा सकता है। यह कार्यक्रम के जीवनकाल के लिए आवंटित किया जाता है। स्थिर कार्यों को सीधे वर्ग नाम का उपयोग करके बुलाया जा सकता है।
स्टेटिक वेरिएबल्स को केवल एक बार इनिशियलाइज़ किया जाता है। कंपाइलर प्रोग्राम के अंत तक वेरिएबल को बनाए रखता है। स्टेटिक वैरिएबल को फंक्शन के अंदर या बाहर परिभाषित किया जा सकता है। वे ब्लॉक के स्थानीय हैं। स्थिर चर का डिफ़ॉल्ट मान शून्य है। स्थिर चर कार्यक्रम के निष्पादन तक जीवित रहते हैं।
यहाँ C++ भाषा में स्थिर कीवर्ड का सिंटैक्स है,
static datatype variable_name = value; // Static variable static return_type function_name { // Static functions ... }
यहां,
डेटाटाइप - वेरिएबल का डेटाटाइप जैसे इंट, चार, फ्लोट आदि।
variable_name - यह उपयोगकर्ता द्वारा दिए गए वेरिएबल का नाम है।
मान - वैरिएबल को इनिशियलाइज़ करने के लिए कोई भी वैल्यू। डिफ़ॉल्ट रूप से, यह शून्य होता है।
रिटर्न_टाइप - मान वापस करने के लिए फ़ंक्शन का डेटाटाइप।
function_name - समारोह का कोई भी नाम।
यहाँ C++ भाषा में स्थिर चर का एक उदाहरण दिया गया है,
उदाहरण
#include <bits/stdc++.h> using namespace std; class Base { public : static int val; static int func(int a) { cout << "\nStatic member function called"; cout << "\nThe value of a : " << a; } }; int Base::val=28; int main() { Base b; Base::func(8); cout << "\nThe static variable value : " << b.val; return 0; }
आउटपुट
Static member function called The value of a : 8 The static variable value : 28
उपरोक्त कार्यक्रम में, एक स्थिर चर घोषित किया गया है और एक स्थिर कार्य को वर्ग आधार में परिभाषित किया गया है जैसा कि नीचे दिखाया गया है -
public : static int val; static int func(int a) { cout << "\nStatic member function called"; cout << "\nThe value of a : " << a; }
क्लास के बाद और मेन () से पहले, स्टैटिक वेरिएबल को इस तरह से इनिशियलाइज़ किया जाता है -
int Base::val=28;
फंक्शन मेन () में बेस क्लास का ऑब्जेक्ट बनाया जाता है और स्टैटिक वेरिएबल कहा जाता है। बेस क्लास के ऑब्जेक्ट का उपयोग किए बिना स्टैटिक फंक्शन को इस प्रकार भी कहा जाता है -
Base b; Base::func(8); cout << "\nThe static variable value : " << b.val;