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