"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++11 में मूव कंस्ट्रक्टर और मूव असाइनमेंट ऑपरेटर स्वचालित रूप से कब जेनरेट होते हैं?

C++11 में मूव कंस्ट्रक्टर और मूव असाइनमेंट ऑपरेटर स्वचालित रूप से कब जेनरेट होते हैं?

2024-12-26 को प्रकाशित
ब्राउज़ करें:166

When Are Move Constructors and Move Assignment Operators Automatically Generated in C  11?

मूव ऑपरेशंस की स्वचालित पीढ़ी

सी 11 में, मूव सिमेंटिक्स की शुरूआत ने उन परिस्थितियों के बारे में सवाल उठाए जिनके तहत मूव कंस्ट्रक्टर और मूव असाइनमेंट ऑपरेटर स्वचालित रूप से जेनरेट होते हैं।

सी 11 के तहत, कॉपी कंस्ट्रक्टर और कॉपी असाइनमेंट ऑपरेटर की तरह मूव ऑपरेशंस स्वचालित रूप से जेनरेट नहीं होते हैं। यदि कुछ शर्तें पूरी होती हैं तो कंपाइलर केवल मूव सिमेंटिक्स उत्पन्न करता है:

  • कोई उपयोगकर्ता-परिभाषित कॉपी कंस्ट्रक्टर या कॉपी असाइनमेंट ऑपरेटर मौजूद नहीं है। यदि इनमें से कोई भी सदस्य स्पष्ट रूप से परिभाषित है, तो कोई मूव नहीं संचालन उत्पन्न होते हैं। शब्दार्थ।
  • वर्ग में कोई गैर-प्रतिलिपि योग्य सदस्य नहीं है। यदि वर्ग में ऐसे सदस्य हैं जिन्हें स्थानांतरित नहीं किया जा सकता है, जैसे कि गतिशील रूप से आवंटित मेमोरी के संकेतक, तो स्थानांतरण संचालन उत्पन्न नहीं होते हैं।
  • इन नियमों को समझने से उन वर्गों के कार्यान्वयन को मार्गदर्शन करने में मदद मिलती है जो चाल शब्दार्थ का उपयोग करते हैं। हावर्ड हिनांट की प्रस्तुति की तालिका चाल संचालन सहित विशेष सदस्यों की स्वचालित पीढ़ी का संक्षिप्त अवलोकन प्रदान करती है:

घोषणाकॉपी कंस्ट्रक्टरNoneउत्पन्ननहीं उत्पन्नउत्पन्न नहींउत्पन्न नहीं हुआउत्पन्न नहीं हुआउत्पन्न नहींनहीं उत्पन्नउत्पन्न नहीं हुआउत्पन्न नहीं हुआनहीं उत्पन्नउत्पन्न नहीं हुआउत्पन्न नहींनहीं उत्पन्नउत्पन्न नहीं हुआउत्पन्न नहीं हुआउत्पन्न नहीं हुआउत्पन्न नहींइन नियमों को पहचानकर, डेवलपर्स यह सुनिश्चित कर सकते हैं कि उनकी कक्षाएं चाल शब्दार्थ का ठीक से उपयोग करती हैं और इष्टतम दक्षता प्राप्त करती हैं।
असाइनमेंट ऑपरेटर को कॉपी करेंकंस्ट्रक्टर को स्थानांतरित करें और असाइनमेंट को स्थानांतरित करें ऑपरेटर
उत्पन्नउत्पन्न नहींकॉपी कंस्ट्रक्टर
उत्पन्नउत्पन्न नहींकॉपी असाइनमेंट ऑपरेटर
उत्पन्न नहीं उत्पन्न नहीं हुआस्थानांतरित करें कंस्ट्रक्टर
उत्पन्न नहीं हुआउत्पन्न नहीं हुआअसाइनमेंट ऑपरेटर को स्थानांतरित करें
उत्पन्न नहींनहीं उत्पन्नविनाशक
उत्पन्न नहींउत्पन्न नहीं कॉपी कंस्ट्रक्टर और कॉपी असाइनमेंट ऑपरेटर
उत्पन्न नहीं हुआउत्पन्न नहीं हुआकॉपी कंस्ट्रक्टर और मूव कंस्ट्रक्टर
उत्पन्न नहीं हुआ नहीं उत्पन्नकॉपी कंस्ट्रक्टर और मूव असाइनमेंट ऑपरेटर
उत्पन्न नहीं हुआउत्पन्न नहीं हुआअसाइनमेंट ऑपरेटर और मूव कंस्ट्रक्टर को कॉपी करें
उत्पन्न नहीं हुआउत्पन्न नहीं हुआअसाइनमेंट ऑपरेटर को कॉपी करें और असाइनमेंट ऑपरेटर को स्थानांतरित करें
उत्पन्न नहीं हुआनहीं उत्पन्नकंस्ट्रक्टर और डिस्ट्रक्टर को स्थानांतरित करें
उत्पन्न नहींउत्पन्न नहीं असाइनमेंट ऑपरेटर और डिस्ट्रक्टर को स्थानांतरित करें
उत्पन्न नहीं हुआउत्पन्न नहीं हुआकॉपी कंस्ट्रक्टर और कॉपी असाइनमेंट ऑपरेटर और मूव कंस्ट्रक्टर
उत्पन्न नहींनहीं उत्पन्नकॉपी कंस्ट्रक्टर और कॉपी असाइनमेंट ऑपरेटर और मूव असाइनमेंट ऑपरेटर
उत्पन्न नहीं हुआउत्पन्न नहीं हुआ कंस्ट्रक्टर को कॉपी करें और कंस्ट्रक्टर को स्थानांतरित करें और असाइनमेंट को स्थानांतरित करें ऑपरेटर
उत्पन्न नहीं हुआउत्पन्नअसाइनमेंट ऑपरेटर को कॉपी करें और कंस्ट्रक्टर को स्थानांतरित करें और असाइनमेंट ऑपरेटर को स्थानांतरित करें
नहीं उत्पन्नउत्पन्न
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3