kzhereb / knu-is-ooop2019

Materials for "Fundamentals of OOP" course
MIT License
3 stars 0 forks source link

T10.33. Як створювати smart pointers? #33

Open yanaskyrda opened 4 years ago

JuliaSamartseva commented 4 years ago

В залежності від типу вказівника: unique_ptr: std::unique_ptr<type> pointer = std::make_unique<type>(); або std::unique_ptr<type> pointer(new type()); Перший спосіб вважається кращим для exception safety shared_ptr та weak_ptr:

std::weak_ptr<type> p;
{
  std::shared_ptr<type> pointer = std::make_shared<type>();
  p = pointer;
}
AntonHladkiy commented 4 years ago

std::make_unique() для unique ptr; std::make_shared<type() для shared ptr; а також копіювання для weak та shared ptr

RostyslavMV commented 4 years ago

std::unique_ptr pointer(new Class()); std::shared_ptr pointer(new Class());

i1red commented 4 years ago

Через конструктор або std::make_shared, std::make_unique

ilyakorenevskyi commented 4 years ago

std::make_unique() для unique ptr; std::make_shared () для shared ptr auto ptr scope ptr