Qu'est-ce que l'idiome Copy-and-Swap en C++ et quand l'utiliser ?
Bonjour à tous ! J'ai commencé à apprendre le C++ et j'essaie de comprendre comment redéfinir correctement l'opérateur d'affectation. Je sais qu'il faut gérer l'auto-affectation et libérer les anciennes ressources, mais mon code a l'air horrible et je fais constamment des erreurs.\n\nVoici un exemple de ma classe pour travailler avec un tableau dynamique :\n```cpp\nclass MyArray {\n int* data;\n size_t size;\npublic:\n MyArray(size_t s) : size(s), data(new int[s]) {}\n ~MyArray() { delete[] data; }\n \n // Opérateur d'affectation problématique\n MyArray& operator=(const MyArray& other) {\n if (this != &other) { // vérification de l'auto-affectation\n delete[] data; // libération des anciennes données\n size = other.size;\n data = new int[size]; // allocation de nouvelle mémoire\n std::copy(