Was ist die Copy-and-Swap-Idiom in C++ und wann sollte man sie verwenden?
Hallo zusammen! Ich habe angefangen, C++ zu lernen und versuche, die korrekte Überschreibung des Zuweisungsoperators zu verstehen. Ich weiß, dass ich auf Selbstzuweisung achten und alte Ressourcen freigeben muss, aber mein Code sieht schrecklich aus und ich mache ständig Fehler.\n\nHier ist ein Beispiel meiner Klasse für die Arbeit mit einem dynamischen Array:\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 // Problematic assignment operator\n MyArray& operator=(const MyArray& other) {\n if (this != &other) { // check for self-assignment\n delete[] data; // free old data\n size = other.size;\n data = new int[size]; // allocate new memory\n std::copy(
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen