जब आप अपनी कक्षा में सीक्टर, डीटीओआर या ओप = जोड़ते हैं तो मुझे अंगूठे का सी ++ नियम पता है, आपको अन्य परिस्थितियों में कक्षा को सही तरीके से काम करने के लिए अन्य दो भी जोड़ना होगा।कन्स्ट्रक्टर, विनाशक और असाइनमेंट ऑपरेटर कॉपी करें। जब हमें उन सभी की आवश्यकता नहीं होती है?
क्या कोई ऐसा मामला है जब आपको तीनों को प्रदान करने की आवश्यकता नहीं है, उनमें से केवल एक या दो?
सी ++ आपको उन सभी को जोड़ने की आवश्यकता क्यों नहीं है यदि आप उनमें से किसी एक को अपनी कक्षा में जोड़ते हैं?
EDIT1:
जब आप न केवल उनमें से कुछ की जरूरत नहीं है, लेकिन आप उन्हें ताकि आप उन्हें निजी या संरक्षित करना चाहते हैं, नहीं करना चाहती उदाहरण का उल्लेख किया। लेकिन आपको अभी भी खाली निकायों के साथ भी अपने कोड में लिखना होगा।
खाली शरीर के साथ वर्चुअल विनाशक जोड़कर कक्षा क्लालीमोर्फिक बनाते समय मेरे लिए एकमात्र वैध कारण नहीं है। लेकिन जैसे ही आप विनाशक के शरीर में कुछ लिखते हैं, आपको कोक्टर और op = के शरीर में कुछ लिखने पर विचार करना चाहिए।
मैं उदाहरणों की तलाश में हूं जब आपको सभी 3 विधियों को लिखने की आवश्यकता नहीं है और आप अपनी कक्षा में बग पैदा किए बिना उनमें से कुछ को छोड़ सकते हैं भले ही कोई नौसिखिया आपकी कक्षा का उपयोग कर रहे हों। :)
+1 गैर-प्रतिलिपि प्रकारों का उल्लेख करने के लिए। –
यदि आप वास्तव में एक प्रकार का गैर-प्रतिलिपि बनाना चाहते हैं, तो आप अभी भी निजी या संरक्षित के रूप में cctor और op = लिखना चाहेंगे। – Calmarius