मैं एक ही पैरामीटर सूची के साथ दो बार एक ऑपरेटर अधिभारित करता हूं। लेकिन अलग वापसी प्रकार के साथ:सी ++ ओवरलोड ऑपरेटर दो बार, एक रिटर्न गैर-कॉन्स्ट संदर्भ और अन्य कॉन्स्ट संदर्भ, वरीयता क्या है?
T& operator()(par_list){blablabla}
const T& operator()(par_list){blablabla}
तो जब मैं() ऑपरेटर, जो समारोह क्या वरीयता या स्थिति के आधार पर कहा जा सकता है फोन कर रहा हूँ? मुझे पता है कि यदि मैं कॉन्स्ट फ़ंक्शन के तहत कॉल() को कॉल करता हूं तो इसे टी & एक होना चाहिए।
मैं उत्सुक हूं कि सी ++ ऐसी स्थिति से कैसे निपटता है और डिफ़ॉल्ट वरीयता कैसे काम करती है।
धन्यवाद
शब्द है * अधिभार *, और कोई। – chris
सी ++ रिटर्न प्रकार से ओवरलोड को अस्वीकार करता है। कोई भी 'क्या कर सकता/चाहिए' में जा सकता है, लेकिन इससे कोई फर्क नहीं पड़ता। एक चाल है जब रिटर्न प्रकार का आधार होता है तो विधि को स्थिर करना होता है, क्योंकि इसे अधिभारित किया जा सकता है। मेरी याददाश्त है कि कॉन्स्ट विधि को प्राथमिकता दी जाती है, गैर-कॉन्स को कॉन्स्ट कॉल कहा जाता है, यह कानूनी नहीं होगा। – Joe