c++ - protected affectation operator and public copy-ctor -
सबसे पहले: संभावित कारण जिनके लिए एक वर्ग है है: निम्नलिखित डिज़ाइन पर विचार करें: जब मैं मानक कंटेनरों के कुछ कार्यों के लिए आवश्यक है कि मूल्य प्रकार CopyAssignable होगा। Std :: vector के ऐसे ऑपरेशन का उदाहरण सदस्य फ़ंक्शन है यह मानक संघीय कंटेनरों के लिए मान्य है। अनुभाग 23.2.4 के पैराग्राफ 7 में सी ++ मानक के एसोसिएटिव कंटेनर में कोई नोट नहीं है <नोट: p> [नोट: उदाहरण के लिए, कुछ मामलों में key_type और mapped_type को प्रतिभूतिबद्ध होना आवश्यक है भले ही संबंधित value_type , जोड़ी, प्रतिलिपि नहीं है। एक संक्षिप्त टिप्पणी]
ऑपरेटर = सुरक्षित
copy-ctor सार्वजनिक? < P> दूसरे :
वर्ग WeirdDesign {public: WeirdDesign (const WeirdDesign & amp;) {} संरक्षित: विचित्र डिज़ाइन & amp; ऑपरेटर = (कंस वर्डाडिज़ाइन & amp;) {}}; स्ट्रेट ए {टाइपिंगफेस स्टडी :: वेक्टर & lt; WeirdDesign & gt; मेरी तरह; शून्य विधि (कंस माइरिपे एंड तत्व) {// तत्वों तक पहुंच}}; वर्ग बी {शून्य रहित () (std :: unordered_map & lt; Std :: string, A :: mytype & gt; mymap; Mymap.insert (std :: make_pair ("0", ए :: मायटाइप ())); // ए को जोड़ने में विफल ()। विधि (mymap.find ("0") - gt; दूसरा); }};
B :: mymap _ के भीतर एक तत्व सम्मिलित करने का प्रयास करता हूं, तो लिंकर
ऑपरेटर = के
को हल करने में विफल रहता है WeirdDesign ? क्यों?
insert ।
Comments
Post a Comment