c++ - protected affectation operator and public copy-ctor -


सबसे पहले:

संभावित कारण जिनके लिए एक वर्ग है है:

  • ऑपरेटर = सुरक्षित
  • 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 ? क्यों?

    मानक कंटेनरों के कुछ कार्यों के लिए आवश्यक है कि मूल्य प्रकार CopyAssignable होगा। Std :: vector के ऐसे ऑपरेशन का उदाहरण सदस्य फ़ंक्शन है insert

    यह मानक संघीय कंटेनरों के लिए मान्य है। अनुभाग 23.2.4 के पैराग्राफ 7 में सी ++ मानक के एसोसिएटिव कंटेनर में कोई नोट नहीं है <नोट:

    [नोट: उदाहरण के लिए, कुछ मामलों में key_type और mapped_type को प्रतिभूतिबद्ध होना आवश्यक है भले ही संबंधित value_type , जोड़ी, प्रतिलिपि नहीं है। एक संक्षिप्त टिप्पणी]

Comments

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -