यदि आपके पास कक्षा के लिए डेटा है जिसे संशोधित किया जाएगा और पूरे कार्यक्रम में बनाए रखा जाना चाहिए, लेकिन केवल एक सदस्य फ़ंक्शन में उपयोग किया जाता है, तो क्या यह वैरिएबल को स्थानीय स्थिर चर दिनचर्या है कि यह कक्षा में सदस्य है या इसे बनाते हैं?स्थैतिक चर बनाम सदस्य
उत्तर
प्रश्न यह नहीं है कि "डेटा पूरे कार्यक्रम में उपयोग किया जाएगा", बल्कि "यदि आप इस वर्ग के दो ऑब्जेक्ट्स बनाते हैं, तो क्या आप चाहते हैं कि वे यह डेटा साझा करें?" यदि हां, तो इसे स्थिर बनाएं। यदि नहीं, तो मत करो।
मैं तर्क दूंगा कि ज्यादातर मामलों में, आपको कभी भी स्थानीय स्थैतिक चर का उपयोग नहीं करना चाहिए, और इसके बजाय स्थिर सदस्य चर का उपयोग करना चाहिए। तब प्रश्न खराब हो जाता है कि उस चर को वर्ग के उदाहरणों के बीच साझा किया जाना चाहिए या नहीं।
एक स्थिर चर के रूप में एक स्थानीय चर घोषित करना मतलब है कि आपकी विधि में अब वस्तु है, वस्तु के राज्य से अलग है। इस कोड को बनाए रखने के दौरान यह कई गलतियों का कारण बन सकता है (जैसे कॉपी कन्स्ट्रक्टर कार्यान्वयन, असाइनमेंट, क्रमबद्धता) और इसे पढ़ने के दौरान (अस्पष्ट विधि व्यवहार)।
स्थैतिक स्थानीय लोगों का उपयोग करने से बचें जब तक कि आपके पास कुछ अच्छा कारण न हो (केवल एक ही जिसे मैं सोच सकता हूं सिंगल थ्रेडेड सिंगलेटोन कार्यान्वयन है)।
- 1. संरक्षित स्थैतिक सदस्य चर
- 2. स्थैतिक सदस्य कार्यों के स्थानीय चर
- 3. गैर स्थैतिक सदस्य
- 4. गैर स्थैतिक बनाम स्थिर कार्य और चर
- 5. स्थैतिक चर प्रारंभिक जावा
- 6. grails hasOne बनाम प्रत्यक्ष सदस्य चर
- 7. सी ++ सदस्य समारोह निजी स्थैतिक चर का उपयोग?
- 8. सी ++ स्थैतिक चर का उपयोग करते हुए विरासत सदस्य कार्य
- 9. स्थैतिक चर?
- 10. स्थैतिक चर
- 11. सी ++ स्थैतिक सदस्य परिवर्तनीय दायरा
- 12. स्थैतिक बनाम बाहरी "सी"/"सी ++"
- 13. स्थैतिक सदस्य फ़ंक्शन और थ्रेड-सुरक्षा
- 14. अप्रारंभीकृत स्थैतिक चर
- 15. सार्वजनिक स्थैतिक चर मूल्य
- 16. स्थैतिक चर क्या हैं?
- 17. स्थैतिक वर्ग बनाम सिंगलटन वर्ग
- 18. वैश्विक बनाम फ़ंक्शन बनाम स्थैतिक वर्ग विधि
- 19. लिंकिंग: स्थैतिक बनाम गतिशील
- 20. PHP5: कॉन्स बनाम स्थैतिक
- 21. अनियमित पीओडी सदस्य चर
- 22. सी ++ सदस्य चर
- 23. निर्माता सदस्य चर
- 24. वेक्टर सदस्य चर
- 25. shared_ptr सदस्य चर प्रारंभ करना, नया बनाम make_shared?
- 26. गैर-स्थैतिक सदस्य प्रारंभकर्ता अन्य गैर-स्थिर
- 27. स्थैतिक सदस्य फ़ंक्शंस और थ्रेड-सुरक्षा
- 28. SetWindowsHookEx, कीबोर्डप्रोक और गैर स्थैतिक सदस्य
- 29. गैर स्थैतिक डेटा सदस्य initializers सवाल
- 30. सी ++ स्थैतिक निरंतर स्ट्रिंग (कक्षा सदस्य)
धन्यवाद। मैं भूल गया कि वर्ग सदस्य कार्यों में भी स्थानीय स्थैतिक चर उस वर्ग की सभी वस्तुओं द्वारा साझा किए जाते हैं। – Anonymous