C++ में copy-and-swap इडियम क्या है?
सभी को नमस्ते! मैं C++ सीख रहा हूँ और कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर को सही ढंग से लिखने का प्रयास कर रहा हूँ। मैंने rule of three के बारे में पढ़ा है, लेकिन अक्सर मुझे "copy-and-swap" नामक किसी इडियम का उल्लेख मिलता है।
मेरे पास एक सरल क्लास है जो डायनामिक मेमोरी को मैनेज करती है:
```cpp
class String {
public:
String(const char* str = "") {
size = strlen(str);
data = new char[size + 1];
strcpy(data, str);
}
~String() { delete[] data; }
// कॉपी कंस्ट्रक्टर
String(const String& other) {
size = other.size;
data = new char[size + 1];
strcpy(data, other.data);
}
// असाइनमेंट ऑपरेटर - यहाँ मुझे समस्या है
String& operator=(const String& other) {
// सही तरीका क्या है?
if (this != &other) {
delete[] data;
size = other.size;
data = new char[size + 1];
strcpy(data, other.data);
}
re