Утилита удаления/сброса элементов в методе копированияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Утилита удаления/сброса элементов в методе копирования

Сообщение Anonymous »

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»