Перейти к содержимому

Оператор ->

Синтаксис и работа оператора

Синтаксис

pointer->member

Работа

Оператор -> разыменовывает указатель и затем обращается к члену объекта. Это эквивалентно выражению (*pointer).member.

Примеры использования

Пример 1: Доступ к полям структуры

#include <iostream>
struct Point {
int x;
int y;
};
int main() {
Point p = {10, 20};
Point* ptr = &p;
std::cout << "x = " << ptr->x << ", y = " << ptr->y << std::endl;
return 0;
}

Вывод

x = 10, y = 20

В этом примере ptr — указатель на объект p типа Point. Оператор -> используется для доступа к полям x и y.

Пример 2: Доступ к методам класса

#include <iostream>
class Rectangle {
public:
int width;
int height;
int area() {
return width * height;
}
};
int main() {
Rectangle rect = {5, 10};
Rectangle* ptr = &rect;
std::cout << "Area = " << ptr->area() << std::endl;
return 0;
}

Вывод

Area = 50

Здесь ptr — указатель на объект rect типа Rectangle. Оператор -> используется для вызова метода area.

Пример 3: Использование в динамически выделенной памяти

#include <iostream>
class Circle {
public:
double radius;
double circumference() {
return 2 * 3.14159 * radius;
}
};
int main() {
Circle* c = new Circle;
c->radius = 5.0;
std::cout << "Circumference = " << c->circumference() << std::endl;
delete c;
return 0;
}

Вывод

Circumference = 31.4159

В этом примере оператор -> используется для доступа к членам объекта Circle, созданного в динамической памяти с помощью оператора new.

Важные замечания

  • Оператор -> удобен для доступа к членам объекта через указатель, исключая необходимость явного разыменования с помощью *.
  • Он широко используется при работе с динамически выделенной памятью и структурами данных, такими как списки, деревья и т.д.

Резюме

  • Оператор -> используется для доступа к членам класса или структуры через указатель.
  • Он эквивалентен выражению (*pointer).member и упрощает синтаксис.
  • Примеры использования включают доступ к полям структуры, методам класса и динамически выделенной памяти.
  • Понимание использования оператора -> важно для работы с указателями и объектами в C++.