Avatar ·

Qu'est-ce que l'idiome copy-and-swap en C++ ?

Bonjour à tous ! J'apprends le C++ et j'essaie de comprendre comment écrire correctement le constructeur de copie et l'opérateur d'affectation. J'ai lu sur la règle des trois, mais je rencontre souvent des mentions d'un certain idiome "copy-and-swap". \n\nJ'ai une classe simple qui gère la mémoire dynamique :\n\n```cpp\nclass String {\npublic:\n String(const char* str = "") {\n size = strlen(str);\n data = new char[size + 1];\n strcpy(data, str);\n }\n \n ~String() { delete[] data; }\n \n // Constructeur de copie\n String(const String& other) {\n size = other.size;\n data = new char[size + 1];\n strcpy(data, other.data);\n }\n \n // Opérateur d'affectation - c'est là que j'ai des problèmes\n String& operator=(const String& other) {\n // Comment corr