मैं कुछ इस तरह कोशिश कर रहा हूँ:क्या सी ++ असाइनमेंट ऑपरेटर मुफ्त फ़ंक्शन हो सकते हैं?
Foo & operator=(Foo & to, const Bar &from);
लेकिन मैं इस त्रुटि हो रही है:
E2239 'operator =(Foo &, const Bar &)' must be a member function
वहाँ सीमाओं जिस पर ऑपरेटरों/नि: शुल्क के रूप में कार्य परिभाषित नहीं किया जा सकता कर सकते हैं कर रहे हैं, और यदि हां , क्यूं कर?
ऐसा करने के लिए कोई और कारण? यह ऑपरेटर = सदस्य कार्य करने के लिए समझ में आता है, आखिरकार, यह 'तीन' प्रतिलिपि नियंत्रण कार्यों में से एक है (अर्थात् कॉपी कन्स्ट्रक्टर, ऑपरेटर = और विनाशक)। लेकिन दूसरों के लिए क्यों? – zoujyjs
@zoujyjs ऑपरेटरों के पास आंतरिक सदस्य चर (संभवतः निजी) वाले लोगों तक पहुंच होनी चाहिए। नि: शुल्क कार्यों में ऐसी पहुंच नहीं होगी। – iheanyi
@hiheanyi लेकिन हम मुक्त कार्य को कक्षा –