C में वेरिएबल्स को छायांकित करना
कक्षाओं के भीतर वेरिएबल्स को परिभाषित करते समय, C एक ही नाम वाले वेरिएबल्स को अलग-अलग स्कोप में उपयोग करने की अनुमति देता है। यह घटना, जिसे "छाया देने वाले चर" के रूप में जाना जाता है, भ्रम और अप्रत्याशित व्यवहार को जन्म दे सकती है।
दी गई वर्ग परिभाषा में:
class Measure {
int N;
double measure_set[];
char nomefile[];
double T;
};
सदस्य चर T को get विधि में घोषित वेरिएबल T द्वारा छायांकित किया जाएगा:
void Measure::get() {
int M=0;
int nmax=50;
// ...
cout > T;
cout परिणामस्वरूप, प्राप्त विधि के भीतर टी में किया गया कोई भी संशोधन वास्तव में छायांकित चर माप_सेट[0] को प्रभावित करेगा। इस समस्या को सुधारने के लिए, नाम के टकराव से बचने के लिए अलग-अलग चर नामों का उपयोग करने या वर्ग सदस्य उपसर्गों का उपयोग करने पर विचार करें:
विशिष्ट चर नाम:
class Measure {
int N;
double measure_set[];
char nomefile[];
double temperature; // Rename variable
};
void Measure::get() {
// ...
cout > temperature;
cout वर्ग सदस्य उपसर्ग:
class Measure {
int m_N;
double m_measureSet[];
std::string m_nomefile;
double m_T;
};
void Measure::get() {
// ...
cout > m_T;
cout वर्ग नाम या विशिष्ट पहचानकर्ता के साथ सदस्य चर को उपसर्ग करके, आप नाम टकराव से बच सकते हैं और यह सुनिश्चित कर सकते हैं कि छायांकित चर वर्ग के सदस्यों के साथ हस्तक्षेप नहीं करते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3