Создание через make_shared в C++
Как и у единственного владельца, общий указатель
удобно создавать одной функцией, без отдельного new.
Функция make_shared выделяет объект
и возвращает готовый shared_ptr.
Аргументы конструктора передают так же,
как при make_unique. Запишем
класс Counter:
#include <iostream>
#include <memory>
class Counter {
public:
int value;
Counter(int value) : value(value) {}
};
Создадим счетчик с начальным значением и выведем его:
int main() {
std::shared_ptr<Counter> tally =
std::make_shared<Counter>(100);
std::cout << tally->value << "\n";
return 0;
}
Сделайте класс Meter с полем units.
Получите shared_ptr через make_shared,
скопируйте указатель и выведите units
из обеих переменных.