उन पिछले हफ्तों में, मैंने खुद को const
हर जगह उपयोग करके पाया। न केवल विधियों या तर्क घोषणाओं में, बल्कि अस्थायी चर के लिए भी।क्या मैं कॉन्स का दुरुपयोग कर रहा हूं?
मुझे एक साधारण कार्य के साथ चित्रित करने दें।
मैं लिखने के लिए प्रयोग किया है:
// A dummy function that sums some computation results
unsigned int sum_results(const Operation& p1, const Operation& p2)
{
unsigned int result1 = p1.computeResult();
unsigned int result2 = p2.computeResult();
// Well this function could be in one single line but
// assume it does more complex operations
return result1 + result2;
}
लेकिन अब यह अधिक की तरह है:
// A dummy function that sums some computation results
unsigned int sum_results(const Operation& p1, const Operation& p2)
{
const unsigned int result1 = p1.computeResult();
const unsigned int result2 = p2.computeResult();
// Well this function could be in one single line but
// assume it does more complex operations
return result1 + result2;
}
बाद मेरे लिए और अधिक समझ में आता है और त्रुटियों की संभावना कम लगती है। (मैं मानता हूं कि इस उदाहरण में, यह वास्तव में कोई फर्क नहीं पड़ता) हालांकि मैंने बहुत कम कोड नमूने देखे हैं जहां const
अस्थायी/स्थानीय चर पर उपयोग किया गया था। और मैं समझना चाहता हूं क्यों।
क्या कोई कारण है कि यह एक आम मामला नहीं है? क्या मैं const
के उपयोग के साथ दुरुपयोग कर रहा हूं? या यह सिर्फ मुझे है कि गलत नमूने को देख रहा है?
+1। स्थानीय वेरिएबल्स पर कॉन्स्ट डालना जो बदलना नहीं है (या नहीं बदला जाना चाहिए) त्रुटियों को कैप्चर करने से पहले त्रुटियों को पकड़ता है (स्पष्ट समय पर) और स्पष्ट रूप से अगले प्रोग्रामर को अपना इरादा दिखाता है जिसे आपके कोड को देखना है। –
लेकिन यह बेहतर perfomance या संकलक द्वारा बेहतर अनुकूलन के लिए नेतृत्व करेंगे। – DumbCoder
@ डंबकोडर: शायद, लेकिन अत्यधिक संभावना नहीं है। आधुनिक कंपिलर कोड को अनुकूलित करने में बहुत अच्छे हैं। अगर कोई वास्तव में परवाह करता है, तो उन्हें उत्सर्जित मशीन कोड दोनों का प्रयास करना चाहिए। – sharptooth