РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
644 of 815 menu

Метод get

Метод get возвращает сырой указатель на объект, которым владеет shared_ptr. Метод не принимает параметров. При этом shared_ptr продолжает владеть объектом, и счетчик ссылок не изменяется. Если shared_ptr не владеет объектом, метод возвращает нулевой указатель.

Синтаксис

ptr.get()

Пример

Давайте создадим shared_ptr и получим сырой указатель на управляемый объект:

#include <iostream> #include <memory> using namespace std; int main() { shared_ptr<int> ptr = make_shared<int>(42); int* raw = ptr.get(); cout << *raw << endl; cout << ptr.use_count() << endl; return 0; }

Результат выполнения кода:

42 1

Пример

Давайте проверим, что get возвращает нулевой указатель, если shared_ptr ничем не владеет:

#include <iostream> #include <memory> using namespace std; int main() { shared_ptr<int> ptr; if (ptr.get() == nullptr) { cout << "nullptr" << endl; } return 0; }

Результат выполнения кода:

"nullptr"

Пример

Давайте убедимся, что после вызова get счетчик ссылок не изменяется:

#include <iostream> #include <memory> using namespace std; int main() { shared_ptr<int> ptr = make_shared<int>(10); shared_ptr<int> copy = ptr; int* raw = copy.get(); cout << *raw << endl; cout << ptr.use_count() << endl; return 0; }

Результат выполнения кода:

10 2

Смотрите также

  • класс shared_ptr,
    который управляет объектом через умный указатель
  • метод reset,
    который заменяет управляемый объект
  • метод use_count,
    который возвращает число владельцев объекта
  • метод unique,
    который проверяет единственного владельца
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить