2012-01-20 23 views
5

यदि आप किसी विधि के अंदर एक स्थानीय स्थैतिक चर बनाते हैं, तो क्या प्रति उदाहरण एक बार या प्रति प्रोग्राम एक बार शुरू किया गया है?विधि कॉल में स्थिर चर

क्या यह सी ++ और उद्देश्य-सी के बीच भिन्न है?

उत्तर

6

यदि आप किसी विधि के अंदर एक स्थानीय स्थैतिक चर बनाते हैं, तो क्या प्रति उदाहरण एक बार शुरू होता है, या प्रति प्रोग्राम एक बार?

प्रति कार्यक्रम एक बार।

भले ही यह एक गैर स्थैतिक वर्ग सदस्य समारोह में है, यह किसी भी वर्ग के उदाहरण से जुड़ा नहीं है; पूरे कार्यक्रम में परिवर्तनीय का केवल एक उदाहरण होगा, केवल एक बार आरंभ किया जाएगा।

क्या यह सी ++ और उद्देश्य-सी के बीच भिन्न है?

सी ++ में, इसे पहली बार फ़ंक्शन कहा जाता है। सी (और उद्देश्य-सी) में, यह प्रोग्राम स्टार्टअप से पहले शुरू किया गया है। अभ्यास में, इससे कोई फर्क नहीं पड़ता है, क्योंकि शुरुआतीकरण में सी

में कोई साइड इफेक्ट नहीं हो सकता है
1

यह प्रति कार्यक्रम एक बार शुरू हुआ है।

यह ओबीजेसी ++ से ObjC विधियों में भिन्न नहीं है।

यह भिन्न हो सकता है यदि यह सी-ए सी फ़ंक्शन स्थिर डेटा की प्रतिलिपि बना सकता है (उदाहरण के लिए) फ़ंक्शन एक स्थिर इनलाइन फ़ंक्शन था। इस प्रकार, आप अनावश्यक स्थैतिक चर के साथ समाप्त हो सकते हैं।

सी ++ के साथ, यह प्रति कार्यक्रम एक बार है। एक विधि या निर्यात सी समारोह के अंदर, यह प्रति कार्यक्रम एक बार है।

3

उद्देश्य-सी उस सम्मान में सी से अलग नहीं है, इसलिए एक विधि के भीतर एक स्थानीय स्थिर चर प्रोग्राम प्रोग्राम में केवल एक बार शुरू किया जाता है।

this S.O. post पर भी एक नज़र डालें, जो ओबज-सी में स्थिर चर का उपयोग करने में आपकी सहायता कर सकता है।

0

सी ++ में यह प्रति कार्यक्रम में सबसे अधिक बार शुरू हुआ है; प्रारंभिकरण तब होता है जब विधि को पहले निष्पादित किया जाता है। (विशेष रूप से जब घोषणा निष्पादित की जाती है।)

0

आपके पास उदाहरण सभी तरीकों से नहीं हैं (कम से कम इस अर्थ में कि आप उनमें से अधिक बना सकते हैं)।

मॉड्यूलो लिंकर अजीबता, आपको प्रत्येक विधि की एक प्रति मिलती है, और प्रत्येक एक स्थिर चर के प्रतिलिपि प्राप्त करता है।

6

ध्यान रखें कि सी ++ में यदि आपकी कक्षा या विधि "टेम्पलेट" है तो प्रत्येक टेम्पलेट इंस्टेंटेशन के लिए एक स्थिर स्थैतिक चर बनाया जाएगा। जैसे तीन अलग-अलग टेम्पलेट पैरामीटर प्रकारों का उपयोग करके तीन अलग-अलग स्थैतिक चर होते हैं।

संबंधित मुद्दे