成员访问运算符:.->

语法

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

备注

成员访问运算符 .-> 用来引用structunionclass 类型的成员。 成员访问表达式具有选定成员的值和类型。

有两种形式的成员访问表达式:

  1. 在第一种形式中,postfix-expression 表示 structclassunion 类型的值,而 id-expression 为指定的 structunionclass的成员命名。 运算的值是 id-expression 的值且是一个左值(如果 postfix-expression 是左值)。

  2. 在第二种形式中,postfix-expression 表示指向 structunionclass 的指针,而 id-expression 为指定的 structunionclass的成员命名。 该值是 id-expression 的值且是左值。 -> 运算符取消引用该指针。 表达式 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;
}
2/1/1900
2/1/2000

另请参阅

后缀表达式
C++ 内置运算符、优先级和关联性
类和结构
结构和联合成员