👉

C++ — Указатели и ссылки

Указатели, ссылки, умные указатели, aliasing, lifetime

32 вопросов · 32 показано

EasyЧем указатель (pointer) отличается от ссылки (reference)?MediumЧто такое rvalue-ссылка (T&&) и для чего она нужна?HardЧем std::move() отличается от std::forward()?HardЧто такое forwarding reference (универсальная ссылка)?HardЧто такое reference collapsing и какие правила?EasyЧто такое raw pointer и почему в современном C++ их избегают?MediumЧем std::unique_ptr отличается от std::shared_ptr?HardЧто такое std::weak_ptr и зачем он нужен?HardЧто такое control block в shared_ptr и когда он создаётся?MediumПочему нужно предпочитать std::make_shared/shared_ptr(new T)?MediumЧто такое custom deleter у умных указателей?MediumЧто такое dangling pointer/reference и как избежать?HardЧто такое strict aliasing rule и почему его нарушение — UB?EasyЧто такое арифметика указателей и какие правила?HardЧто такое pointer to member (.*) и для чего используется?MediumЧем void* отличается от указателей на конкретные типы?MediumЧто такое function pointer и чем он отличается от std::function?HardЧто такое pointer aliasing и как оно влияет на производительность?MediumЧем new отличается от malloc?HardЧто такое placement new и для чего используется?MediumЧто такое double free и почему это UB?EasyЧем delete отличается от delete[]?EasyЧто такое memory leak и как его обнаружить?MediumЧто такое stack overflow и как его избежать?HardЧто такое heap corruption и какие симптомы?EasyЧем nullptr безопаснее NULL?HardЧто такое std::addressof и зачем он нужен, если есть оператор &?MediumЧто такое owning pointer vs observing pointer?HardЧто такое enable_shared_from_this и для чего используется?HardЧто такое aliasing constructor у shared_ptr?EasyЧем отличается const T* от T* const?MediumЧто такое RAII-обёртки над legacy API и как их писать?