Partager via


Opérateurs de l’accès aux membres : . et ->

Syntaxe

postfix-expression:
postfix-expression . templateopt id-expression
postfix-expression -> templateopt id-expression

Notes

Les opérateurs d’accès aux membres . et -> sont utilisés pour faire référence aux membres des types struct, union et class. Les expressions d’accès au membre ont la valeur et le type du membre sélectionné.

Il existe deux formes d’expressions d’accès au membre :

  1. Dans le premier formulaire, postfix-expression représente une valeur du type struct, class ou union, tandis que id-expression désigne un membre du struct, union ou class spécifié. La valeur de l’opération est celle de id-expression. Il s’agit d’une l-value si postfix-expression est une l-value.

  2. Dans le second formulaire, postfix-expression représente un pointeur vers un struct, union ou class, tandis que id-expression désigne un membre du struct, union ou class spécifié. La valeur est celle de id-expression. Il s’agit d’une l-value. L’opérateur -> déréférence le pointeur. Les expressions e->member et (*(e)).member (dans lesquelles e représente un pointeur) génèrent des résultats identiques (sauf lorsque les opérateurs -> ou * sont surchargés).

Exemple

L'exemple suivant illustre les deux formes de l'opérateur d'accès aux membres.

// 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

Voir aussi

Expressions suffixées
Opérateurs intégrés, priorité et associativité C++
Classes et structs
Structure et membres d’union