Avatar ·

C++ में Copy-and-Swap इडियम क्या है और इसका उपयोग कब करें?

सभी को नमस्ते! मैंने C++ सीखना शुरू किया है और assignment operator को सही तरीके से override करने का प्रयास कर रहा हूँ। मुझे पता है कि self-assignment की जाँच करनी होती है और पुराने resources को free करना होता है, लेकिन मेरा कोड बहुत बुरा दिखता है और मैं लगातार गलतियाँ करता हूँ। यहाँ dynamic array के साथ काम करने के लिए मेरे class का उदाहरण है: ```cpp class MyArray { int* data; size_t size; public: MyArray(size_t s) : size(s), data(new int[s]) {} ~MyArray() { delete[] data; } // समस्याग्रस्त assignment operator MyArray& operator=(const MyArray& other) { if (this != &other) { // self-assignment की जाँच delete[] data; // पुराने data को free करें size = other.size; data = new int[size]; // नई memory allocate करें std::copy(other.data, other.data + size, data); } return *this; } // Copy constructor भी है MyArray(const MyArray& other) : size(other.size), data(new int[other.