इस तरह की एक नेस्टेड निजी कक्षा के लिए ऑपरेटर < < कैसे अधिभारित कर सकता है?ओवरलोडिंग ऑपरेटर << एक नेस्टेड निजी कक्षा के लिए संभव है?
class outer {
private:
class nested {
friend ostream& operator<<(ostream& os, const nested& a);
};
// ...
};
जब बाहरी वर्ग संकलक के बाहर की कोशिश कर रहा गोपनीयता के बारे में शिकायत:
error: ‘class outer::nested’ is private
और वें ई प्रिंट फ़ंक्शन एक 'const' सदस्य फ़ंक्शन होना चाहिए। यदि यह 'std :: ostream और print (std :: ostream & out) const' है, तो 'ऑपरेटर <<' केवल एक पंक्ति हो सकती है: 'वापस obj.print (dest);'। – Nawaz
क्यों std: ostream इनर का मित्र होना चाहिए? – Mordachai
क्योंकि आप इसे अन्यथा 'इनर' में परिभाषित नहीं कर सकते हैं। (और यदि इसे 'इनर' में परिभाषित नहीं किया गया है, तो आपको समस्या है कि यह 'इनर' तक नहीं पहुंच सकता है, क्योंकि 'इनर'' बाहरी 'का निजी सदस्य है।) –