C++ Primer 12.1: Могу ли я реализовать StrBlob со статическим векторным членом<string> внутри класса?
В C++ Primer Раздел 12.1.1 (стр. 457) авторы пытаются продемонстрировать момент, когда вы можете использовать shared_ptr для обмена данными между несколькими объектами.
Однако мне кажется, что самым простым способом было бы просто определить статический член внутри класса, который автоматически распределяется между всеми объектами. И нам даже не нужно беспокоиться об использовании shared_ptr. ИМХО, учебник уже имеет в виду решение и пытается найти решение для этого решения.
Есть идеи на этот счет и что является лучшим на практике при написании реального кода?
1 ответ
С shared_ptr
можно обмениваться данными между подмножеством объектов типа T
, static
переменная-член разделяет одно значение во всех экземплярах T
, Как видите, первое гораздо более гибкое.
Примером может служить реализация shared_ptr
сам. Счетчик ссылок разделяется между всеми общими указателями, указывающими на один и тот же объект, указатели, управляющие другим объектом, будут иметь отдельный общий счетчик ссылок и так далее.