Compartilhar via


Operadores de acesso de membro: . e ->

Sintaxe

postfix-expression:
postfix-expression.templateoptid-expression
postfix-expression->templateoptid-expression

Comentários

Os operadores de acesso do membro . e -> são usados para fazer referência a membros de tipos struct, union e class. As expressões de acesso do membro têm o valor e o tipo do membro selecionado.

Há duas formas de expressões de acesso do membro:

  1. No primeiro formulário, postfix-expression representa um valor do tipo struct, class ou union, e id-expression nomeia um membro do struct, union ou class especificado. O valor da operação é o de id-expression e é um l-value se postfix-expression for um l-value.

  2. No segundo formulário, postfix-expression representa um ponteiro para struct, union ou class, e id-expression nomeia um membro do especificado struct, union ou class. O valor é o de id-expression e um l-value. O operador -> desreferencia o ponteiro. As expressões e->member e (*(e)).member (em que e representa um ponteiro) tem resultados idênticos (exceto quando os operadores -> ou * são sobrecarregados).

Exemplo

O exemplo a seguir demonstra as duas formas de operador de acesso do membro.

// 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;
}
2/1/1900
2/1/2000

Confira também

Expressões Postfix
Operadores internos, precedência e associatividade no C++
Classes e Structs
Estrutura e sindicalizados