C++ Primer 12.1: Могу ли я реализовать StrBlob со статическим векторным членом<string> внутри класса?

В C++ Primer Раздел 12.1.1 (стр. 457) авторы пытаются продемонстрировать момент, когда вы можете использовать shared_ptr для обмена данными между несколькими объектами.

Однако мне кажется, что самым простым способом было бы просто определить статический член внутри класса, который автоматически распределяется между всеми объектами. И нам даже не нужно беспокоиться об использовании shared_ptr. ИМХО, учебник уже имеет в виду решение и пытается найти решение для этого решения.

Есть идеи на этот счет и что является лучшим на практике при написании реального кода?

1 ответ

С shared_ptr можно обмениваться данными между подмножеством объектов типа T, static переменная-член разделяет одно значение во всех экземплярах T, Как видите, первое гораздо более гибкое.

Примером может служить реализация shared_ptr сам. Счетчик ссылок разделяется между всеми общими указателями, указывающими на один и тот же объект, указатели, управляющие другим объектом, будут иметь отдельный общий счетчик ссылок и так далее.

Другие вопросы по тегам