Программы на C++. Форум разработчиков
Anonymous
Утилита удаления/сброса элементов в методе копирования
Сообщение
Anonymous » 27 окт 2024, 22:44
Код: Выделить всё
class B;
class A
{
private:
list myList;
unique_ptr smartUniq;
public:
A()
{
myList.push_back(new B(5));
myList.push_back(new B(6));
myList.push_back(new B(7));
}
~A()
{
for (auto& item : myList)
{
delete item;
}
cout getb()));
}
smartUniq.reset(src.smartUniq.get() ? make_unique(*src.smartUniq) : nullptr);
}
return *this;
}
};
Вопрос 1: какая версия назначения копирования правильная (Версия 1, Версия 2 или другая):
Что это за утилита удалить текущих участников перед копированием?
какая польза от : if( this != &src)?
В2: В чем польза smartUniq.reset: можно ли использовать его не так, как в ВЕРСИИ1?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... ent-method
1730058273
Anonymous
[code]class B; class A { private: list myList; unique_ptr smartUniq; public: A() { myList.push_back(new B(5)); myList.push_back(new B(6)); myList.push_back(new B(7)); } ~A() { for (auto& item : myList) { delete item; } cout getb())); } smartUniq.reset(src.smartUniq.get() ? make_unique(*src.smartUniq) : nullptr); } return *this; } }; [/code] Вопрос 1: какая версия назначения копирования правильная (Версия 1, Версия 2 или другая): [list] [*]Что это за утилита удалить текущих участников перед копированием? [*]какая польза от : if( this != &src)? [/list] В2: В чем польза smartUniq.reset: можно ли использовать его не так, как в ВЕРСИИ1? Подробнее здесь: [url]https://stackoverflow.com/questions/79130688/utility-of-delete-reset-members-in-copy-assignement-method[/url]