Программирование на языке C++ - 126 урок. Конструктор копирования и оператор присваивания
Ссылка на плейлист со всеми уроками "Программирование на языке C++" - https://www.youtube.com/watch?v=YaCB_OPWlNs&list=PLoWGNURguz9Ua9CRhJ7y8wphdx4jqZv4u ________________ Автор: Александр Смаль, Михаил Кринкин Лицензия: https://creativecommons.org/licenses/by-sa/4.0/ Источник: https://stepik.org/course/7/ ____________ Задание для закрепления Ниже даны несколько вариантов реализации оператора присваивания для класса String, выберите из них некорректные реализации, т.е. такие, которые неправильно работают с памятью (допускают утечки, обращаются к освобожденной памяти, используют неинициализированные указатели), нарушают семантику оператора присваивания или инвариант класса. 1. String &operator=(const String &other) { str = new char[other.size + 1]; strcpy(str, other.str); size = other.size; return *this; } 2. String &operator=(const String &other) { delete[] str; str = new char[other.size + 1]; strcpy(str, other.str); size = other.size; return *this; } 3. String &operator=(const String &other) { if (this != &other) { str = other.str; size = other.size; } return *this; } Выберите все подходящие ответы из списка 1 2 3
Название:
Программирование на языке C++ - 126 урок. Конструктор копирования и оператор присваивания
Категория:
Разное