ऐसा कुछ है जो मुझे परेशान कर रहा है।विधियों में स्टेटिक स्थानीय चर एक बुरी प्रैक्टिस?
गैर-थ्रेडेड प्रोग्राम में, स्थानीय स्थिर चर (अंदरूनी विधियों) या स्थिर वर्ग के सदस्यों के लिए बेहतर है?
इस उदाहरण में:
class C{
public:
C(){};
void foo();
};
void C::foo(){
static int bar = 0;
bar++;
printf("%d\n",bar);
}
यह एक बुरा अभ्यास माना जाता bar
केवल C::foo()
में इस्तेमाल किया जाएगा, तो है?
आपके उत्तर की शुरुआत वादा करने लगती है, लेकिन क्या आप विस्तृत कर सकते हैं? –
@IIyan, उनके कोड में अर्थशास्त्र "प्रिंट करें कितनी बार 'foo' कहा जाता था!"। अपने प्रश्न में जो भी देख सकता है, उसके पास वर्ग की स्थिति से कोई लेना-देना नहीं है, और इसलिए वैरिएबल को स्थिर वर्ग सदस्य के रूप में रखना गलत होगा। यदि हालांकि 'foo' एक कॉपी कन्स्ट्रक्टर होगा और' बार 'को' नंबरऑफकोपी 'कहा जाएगा, तो यह एक स्थिर वर्ग के सदस्य के लिए एक अच्छा उम्मीदवार होगा।तो यह इस बात पर निर्भर करता है कि इसका उपयोग कैसे किया जाता है। –