Avatar ·

¿Qué es el idiom copy-and-swap en C++?

¡Hola a todos! Estoy aprendiendo C++ y tratando de entender la escritura correcta del constructor de copia y el operador de asignación. Leí sobre la regla de tres, pero a menudo encuentro mención de algún idiom "copy-and-swap". Tengo una clase simple que gestiona memoria dinámica: ```cpp class String { public: String(const char* str = "") { size = strlen(str); data = new char[size + 1]; strcpy(data, str); } ~String() { delete[] data; } // Constructor de copia String(const String& other) { size = other.size; data = new char[size + 1]; strcpy(data, other.data); } // Operador de asignación - aquí tengo problemas String& operator=(const String& other) { // ¿Cómo hacerlo correctamente? if (this != &other) { delete[] data; size = other.size; data = new char[size + 1]; strcpy(data, other.data); } re