गैर-कॉन्स संदर्भों को एल-मानों के साथ प्रारंभ किया जाना चाहिए। यदि आप उन्हें अस्थायी के साथ शुरू कर सकते हैं, तो निम्नलिखित क्या करेंगे?
int& foo = 5;
foo = 6; // ?!
const
संदर्भ विशेष गुण है कि वे रेफरी के जीवन का विस्तार है, और क्योंकि वे const
हैं, वहाँ कोई संभावना नहीं है कि आप कुछ है कि स्मृति में बैठने नहीं है संशोधित करने के लिए कोशिश करता हूँ है। उदाहरण के लिए:
const int& foo = 5;
foo = 6; // not allowed, because foo is const.
याद रखें कि संदर्भ वास्तव में कुछ नहीं, अस्थायी चर का उल्लेख किया है। उदाहरण के लिए, निम्नलिखित मान्य है:
int foo = 5;
int& bar = foo;
bar = 6;
assert(foo == 6);
स्रोत
2010-02-23 00:46:32
रुको, तो क्या इसका मतलब है कि मैं 'कॉन्स्ट क्लास ए और रेफरी = रिटर्न्स क्लासएबीवैल्यू();' का उपयोग कर सकता हूं? मैंने सोचा कि अस्थायी अगली पंक्ति पर मर जाएगी। – Lucas
हां, आप इसका उपयोग कर सकते हैं। जब तक संदर्भ चर करता है तब तक अस्थायी रहेगा: http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!378.entry –
बहुत बढ़िया, धन्यवाद। SO पर, आप हर दिन कुछ नया सीखते हैं ... – Lucas