make_shared и размещает объект и блок управления в одном выделении памяти. При конструировании shared_ptr из голого new обычно.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpUpMs 359 of 696 menu
◀ ▶

Общий блок памяти make_shared в C++

Один кусок памяти часто берет make_shared и размещает объект и блок управления в одном выделении памяти.

При конструировании shared_ptr из голого new обычно нужны два обращения к куче. Фабрика экономит одно из них и улучшает локальность данных. Запишем структуру с полем и выведем его через make_shared:

#include <iostream> #include <memory> struct Quote { int cents = 0; }; int main() { std::shared_ptr<Quote> price = std::make_shared<Quote>(); price->cents = 350; std::cout << price->cents << "\n"; return 0; }

Объявите struct Score с полем points. Получите shared_ptr только через make_shared, запишите 20 и выведите поле.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить