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

Оператор ->

Оператор -> класса unique_ptr возвращает указатель на объект, которым владеет умный указатель, позволяя обращаться к его членам так же, как через обычный указатель. Оператор не принимает параметров и перегружен таким образом, что при обращении к члену объекта сначала происходит разыменование внутреннего указателя, а затем выбор члена. Если unique_ptr не владеет объектом (хранит nullptr), поведение не определено.

Синтаксис

ptr->member

Вместо ptr подставляется объект класса unique_ptr, а вместо member - имя члена объекта, на который указывает умный указатель.

Пример

Давайте создадим unique_ptr на объект класса Point и обратимся к его полям через оператор ->:

#include <iostream> #include <memory> using namespace std; class Point { public: int x; int y; Point(int x, int y) : x(x), y(y) {} }; int main() { unique_ptr<Point> ptr = make_unique<Point>(1, 2); cout << ptr->x << " " << ptr->y << endl; return 0; }

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

1 2

Пример

Давайте вызовем метод объекта через оператор ->:

#include <iostream> #include <memory> #include <string> using namespace std; class Greeter { public: void hello() { cout << "Hello from unique_ptr" << endl; } }; int main() { unique_ptr<Greeter> ptr = make_unique<Greeter>(); ptr->hello(); return 0; }

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

"Hello from unique_ptr"

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

  • класс unique_ptr,
    который представляет умный указатель с уникальным владением
  • оператор *,
    который разыменовывает умный указатель
  • метод get,
    который возвращает хранимый указатель
  • функция make_unique,
    которая создает объект и возвращает unique_ptr на него
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить