स्वीकार करने के लिए स्क्वायर ब्रैकेट ऑपरेटर ओवरलोडिंग मैं संग्रह कक्षा लिख रहा हूं। मैं संग्रह में तत्वों तक पहुंच प्रदान करने के लिए स्क्वायर ब्रैकेट ऑपरेटर ([]) को अधिभारित करना चाहता हूं।मूल्य
int operator[](int i)
{
// Do stuff here
}
मेरे समस्या यह है कि मैं देख नहीं है कि यह कैसे लिखने के लिए इतना है कि मैं एक मूल्य के स्वीकार करने के लिए इस ऑपरेटर का उपयोग कर सकते हैं:
myClassInstance[0] = value;
मैं के साथ वर्ग कोष्ठक ऑपरेटर घोषित करने के लिए कोई रास्ता नहीं देख एक अतिरिक्त तर्क (तत्व को असाइन करने के लिए मूल्य)।
मुझे पता है कि मैं आसानी से int & वापस कर सकता हूं और कॉलर उस पर एक मान निर्दिष्ट कर सकता है, लेकिन आंतरिक रूप से प्रत्येक तत्व को सार्वजनिक किए गए प्रारूप की तुलना में एक अलग प्रारूप में संग्रहीत किया जाता है।
क्या यह भी संभव है?
आप दो ऑपरेटर [] (int) संस्करणों की जरूरत है। एक कॉन्स संस्करण और गैर-कॉन्स संस्करण जिसे आपने पूछा था। एक मूल वस्तु को कॉल करने के लिए मूल संस्करण को इसके पीछे होना चाहिए; –
@ एडविन: मैंने आपकी दूसरी टिप्पणी देखी। मैं इसे जाने दूंगा। धन्यवाद। –