Оператор ->
Синтаксис и работа оператора
Синтаксис
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 = ▭
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++.