成員存取運算子:. 和 ->
postfix-expression . name
postfix-expression –> name
備註
成員存取運算子 . 和 -> 是用來參考結構、等位和類別的成員。 成員存取運算式具有選定成員的值和類型。
成員存取運算式有兩種形式:
在第一種形式中,postfix-expression 代表結構、類別或等位類型的值,而 name 則會為指定結構、等位或類別的成員命名。 運算式的值會是 name 的值,而且如果 postfix-expression 為左值,運算式的值也會是左值。
在第二種形式中,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;
}