मैं एक नष्ट कर दिया नाशक के साथ एक वर्ग है अंतर्निहित उपयोग:नाशक
struct indestructible {
indestructible(indestructible&&);
~indestructible() = delete;
};
जब मैं उसके स्थानांतरण निर्माता इस्तेमाल करने की कोशिश, संकलक शिकायत:
struct user {
indestructible ind;
user(indestructible&& ind) : ind(std::move(ind)) {}
};
indestructible.cc:11:3: error: attempt to use a deleted function
user(indestructible&& ind) : ind(std::move(ind)) {}
^
indestructible.cc:6:3: note: '~indestructible' has been explicitly marked deleted here
~indestructible() = delete;
क्या चल रहा है? ऐसे कोई अन्य सदस्य नहीं हैं जो फेंक सकते हैं, और न ही कन्स्ट्रक्टर बॉडी करता है, तो चालक को धमकाने के लिए चालक के लिए कोई कारण क्यों है?
यदि 'अविनाशी' को नष्ट नहीं किया जा सकता है, तो इसमें कोई ऑब्जेक्ट कैसे नष्ट हो सकता है? –
ध्यान दें कि 'उपयोगकर्ता' का विनाशक अभी भी हटाए गए विनाशक की तुलना में 'ind' – JSQuareD
ए (थोड़ा) बेहतर समाधान को नष्ट करने का प्रयास करेगा, संरक्षित या निजी विनाशक हो सकता है, और उपयोगकर्ता को प्राप्त या मित्र होना चाहिए। वैकल्पिक रूप से आप ऑब्जेक्ट को डिज़ाइन कर सकते हैं ताकि वास्तव में यह एक सामान्य विनाशक हो और विशेष रूप से –