Поделиться через


Операторы для доступа к членам: . и ->

postfix-expression . name 
postfix-expression –> name

Заметки

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

Предусмотрено две формы выражения доступа к члену:

  1. В первой форме выражение постфиксное-выражение представляет значение типа структуры, класса или объединения, а имя задает имя члена указанной структуры, объединения или класса. Значение операции совпадает со значением имя и является l-значением, если постфиксное-выражение является l-значением.

  2. Во второй форме постфиксное-выражение представляет указатель на структуру, объединение или класс, а имя задает имя члена указанной структуры, объединения или класса. Это значение совпадает со значением имя и является l-значением. Оператор –> разыменовывает указатель. Поэтому выражения e**–>**member и (*e).member (где e представляет указатель) дают одинаковые результаты (кроме случая, когда оператор –> или * перегружен).

Пример

В следующем примере показаны обе формы оператора доступа к членам.

// expre_Selection_Operator.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

struct Date {
   Date(int i, int j, int k) : day(i), month(j), year(k){}
   int month;
   int day;
   int year;
};

int main() {
   Date mydate(1,1,1900);
   mydate.month = 2;   
   cout  << mydate.month << "/" << mydate.day
         << "/" << mydate.year << endl;

   Date *mydate2 = new Date(1,1,2000);
   mydate2->month = 2;
   cout  << mydate2->month << "/" << mydate2->day
         << "/" << mydate2->year << endl;
   delete mydate2;
}
  

См. также

Ссылки

Постфиксные выражения

Операторы C++

Операторы C++, приоритет и ассоциативность

Классы, структуры и объединения

Основные понятия

Члены структур и объединений