दिलचस्प पोस्ट
$ (एसएल) के बीच महत्वपूर्ण अंतर क्या हैं .बिंड ("क्लिक करें", $ (एसएल)। क्लिक करें (, $ (sel) .live ("click", $ (sel) .on ("click"? खिड़कियों के नीचे एक सीएमडी विंडो के अंदर जापानी कांजी को कैसे प्रदर्शित किया जाए? कक्षा के साथ प्रथम तत्व के लिए सीएसएस चयनकर्ता मैं सरल डेटाबेस और वेबसैक्यिटी के साथ अपने डेटाबेस का उपयोग कैसे करूं? MVC4 सुरक्षा क्या है? हिल्बर्ट वक्र पर एक बिंदु पर एन-आयामी मान मैप करना ओरेकल एसक्यूएल डेवलपर में मैं चर का उपयोग कैसे करूं? इकाई फ़्रेमवर्क 4.1 कोड प्रथम में एक क्लास प्रॉपर्टी की उपेक्षा करना पायथन में "निजी" (कार्यान्वयन) वर्ग क्या HTML एन्कोडिंग सभी प्रकार के एक्सएसएस हमलों को रोक सकता है? एक्सएमएल को पाइथन शब्दकोश को सीरियल करना क्रोम एक्सटेंशन के अंतर्गत onClick काम नहीं कर रहा है libgdx स्प्राइटबैच बनावट को प्रस्तुत करना मैं कैसे जांच सकता हूं कि वर्तमान दिनांक / समय एक निर्धारित तारीख / समय है? एक एपॉस्ट्रॉफी (एकल उद्धरण) वाले मान को कैसे सम्मिलित करें? स्ट्रिंग द्वारा उसमें सरणियों के साथ एक सरणी क्रमित करें

चाल की कार्रवाई की स्वत: पीढ़ी के लिए नियम क्या हैं?

C ++ 98 में, C ++ कंपाइलर स्वचालित रूप से प्रतिलिपि निर्माता और प्रतिलिपि असाइनमेंट ऑपरेटर सदस्य-प्रतिलिपि के माध्यम से उत्पन्न कर सकता है, उदा।

struct X { std::string s; std::vector<int> v; int n; }; 

सदस्य-प्रतिलिपि का उपयोग करते हुए संकलक स्वचालित रूप से प्रतिलिपि कन्स्ट्रस्ट्रक्टर और प्रतिलिपि असाइनमेंट ऑपरेटर X लिए बनाता है।

लेकिन कदम सीमेंटिक्स के साथ सी ++ 11 में चीजें कैसे बदलती हैं?

क्या चालन निर्माता और चालन ऑपरेटर स्वचालित रूप से उत्पन्न होता है, जैसे कि प्रतिलिपि कन्स्ट्रक्टर और प्रतिलिपि असाइनमेंट ऑपरेटर?

क्या ऐसे मामलों में स्थानांतरित ऑपरेशन स्वचालित रूप से उत्पन्न नहीं होते हैं?

वेब के समाधान से एकत्रित समाधान "चाल की कार्रवाई की स्वत: पीढ़ी के लिए नियम क्या हैं?"

मानक Ch से 12 – विशेष सदस्य कार्य

पैरा 12.8 क्लास ऑब्जेक्ट्स को कॉपी और बढ़ाना (जोर खान)

9 अगर एक कक्षा एक्स की परिभाषा स्पष्ट रूप से एक चालन निर्माता घोषित नहीं करती है, तो एक को निस्तारण रूप से घोषित किया जाएगा यदि और केवल तभी

– एक्स में उपयोगकर्ता द्वारा घोषित प्रति कन्स्ट्रक्टर नहीं है,

– एक्स में उपयोगकर्ता-घोषित कॉपी असाइनमेंट ऑपरेटर नहीं है,

– एक्स में उपयोगकर्ता-घोषित चाल असाइनमेंट ऑपरेटर नहीं है, और

– एक्स में कोई उपयोगकर्ता-घोषित नाशक नहीं है

[नोट: जब चालक निर्माता को स्पष्ट रूप से घोषित नहीं किया गया है या स्पष्ट रूप से आपूर्ति नहीं की गई है, तो अन्यथा चालक को लागू करने वाले अभिव्यक्ति के बजाय प्रतिलिपि कन्स्ट्रक्टर का उपयोग कर सकते हैं। -नोट नोट]

फिर 11 डिफ़ॉल्ट चालन निर्माता को हटाने के नियमों को बताता है

1 1 । एक निहित-घोषित कॉपी / चाल निर्माता, इसकी कक्षा का एक इनलाइन सार्वजनिक सदस्य है। क्लास एक्स के लिए एक डिफॉल्ट कॉपी / स्थानांतरण कन्स्ट्रक्टर को एक्स के रूप में हटाए गए (8.4.3) के रूप में परिभाषित किया गया है:

– एक गैर-तुच्छ संबंधित कंस्ट्रक्टर और एक्स के साथ एक संस्करण सदस्य एक यूनियन-जैसी क्लास है,

– क्लास प्रकार एम (या उसकी सरणी) का एक गैर-स्टैटिक डाटा सदस्य जिसे कॉपी / कॉपी नहीं किया जा सकता क्योंकि अधिभार रिज़ॉल्यूशन (13.3), जैसा कि एम के संबंधित कन्स्ट्रक्टर पर लागू होता है, एक अस्पष्टता या एक फ़ंक्शन जो कि हटाए गए या अनुपयोगी है डिफॉल्ट कन्स्ट्रक्टर,

– एक प्रत्यक्ष या आभासी आधार वर्ग बी, जिसे कॉपी / स्थानांतरित नहीं किया जा सकता क्योंकि ओवरलोड रिज़ॉल्यूशन (13.3), जैसा कि बी के संबंधित कन्स्ट्रक्टर पर लागू होता है, एक अस्पष्टता या फ़ंक्शन जो डिलीटेड कन्स्ट्रक्टर से हटाया या अनुपलब्ध है,

– किसी भी प्रत्यक्ष या आभासी बेस क्लास या गैर-स्थिर डाटा सदस्य जो एक डिस्ट्रक्टर के साथ एक प्रकार का है जिसे हटाए गए या डिफॉल्ट कन्स्ट्रक्टर से अनुपलब्ध है, या,

– प्रतिलिपि निर्माता के लिए, रैवल्यू संदर्भ प्रकार का एक गैर-स्थिर डेटा सदस्य। एक चूक चालन निर्माता जिसे हटाए जाने के रूप में परिभाषित किया गया है उसे अधिभार संकल्प (13.3, 13.4) द्वारा अनदेखा कर दिया गया है।

[नोट: एक हटाए गए कदम कन्स्ट्रक्टर अन्यथा एक आरव्यू से आरंभीकरण में हस्तक्षेप करेगा जो इसके बजाय प्रतिलिपि कन्स्ट्रक्टर का उपयोग कर सकते हैं। -नोट नोट]


इसकी जटिलता पर *

नियम कुछ हद तक भारी हो सकते हैं जटिलता को बायपास करने के लिए कुछ तकनीक का इस्तेमाल करना अच्छा है। उदाहरण हैं:

  1. अपनी कक्षाओं के बहुमत के लेखन को सरल बनाने के लिए शून्य के नियम का उपयोग करें
  2. (निहित रूप से नष्ट कर दिया गया) प्रश्न में विशेष सदस्य समारोह को स्पष्ट रूप से डिफॉल्ट किया गया; अगर यह स्पष्ट रूप से नष्ट कर दिया गया होता, तो संकलक शिकायत करेगा।

* (1) और डीआईपी (2) द्वारा टिप्पणियाँ में किए गए अंक

निकोस अथानसीउ ने एक अच्छा जवाब दिया लेकिन मैं इस उपकरण को जोड़ना चाहता था जो मुझे लगता है कि बहुत उपयोगी है।

यहां हाउदैन हनंत की प्रस्तुति " एब यूट यूट यू ववर वॉन्टेड टू नॉर्थ सिमेंटिक्स (और फिर कुछ) एसीसीयू 2014 सम्मेलन से है जो मुझे लगता है कि विशेष सदस्यों की स्वचालित पीढ़ी के नियमों का एक बहुत अच्छा अनुस्मारक है:

यहां छवि विवरण दर्ज करें

टिप्पणियों से श्री हनंत से स्पष्टीकरण:

स्लाइड यह नहीं कहती है, लेकिन लाल चौकों से बहिष्कृत व्यवहार का संकेत मिलता है Ie यदि आप नापसंद व्यवहार पर निर्भर नहीं करना चाहते हैं, तो अपने प्रतियों के दोनों सदस्यों को घोषित करें यदि आप अपने डिस्ट्रक्टर, या कॉपी सदस्यों में से एक (मूल तौर पर सी ++ 98/03 "3 का नियम" का पालन करें) को घोषित करें

मैं इस तालिका के प्रगतिशील निर्माण को प्राप्त करने के लिए स्लाइड्स को पढ़ने की सलाह देता हूं और इस बारे में विस्तृत व्याख्या है कि हम और अब यह क्यों है

अन्य प्रस्तुतीकरण यहां मिल सकते हैं: http://accu.org/index.php/articles/1901