メンバー アクセス演算子: . および ->
postfix-expression . name
postfix-expression –> name
解説
メンバー アクセス演算子の . と -> は、構造体、共用体、およびクラスのメンバーを参照するために使用されます。 メンバー アクセス式は、選択したメンバーの値と型を持ちます。
メンバー アクセス式には、次の 2 つの形式があります。
最初の形式では、postfix-expression は構造体型、クラス型、または共用体型の値を表し、name が指定された構造体、共用体、またはクラスのメンバーに名前を付けます。 postfix-expression が左辺値の場合、この演算の値は name の値で、左辺値です。
2 番目の形式では、postfix-expression は構造体、共用体、またはクラスへのポインターを表し、name が指定された構造体、共用体、またはクラスのメンバーに名前を付けます。 値は name の値で、左辺値です。 –> 演算子は、ポインターを逆参照します。 したがって、式 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;
}