멤버 액세스 연산자: . 및 ->
postfix-expression . name
postfix-expression –> name
설명
멤버 액세스 연산자 . 및 **->**는 구조체, 공용 구조체 및 클래스의 멤버를 참조하는 데 사용됩니다. 멤버 액세스 식에는 선택한 멤버의 값과 형식이 있습니다.
다음 두 가지 형태의 멤버 액세스 식이 있습니다.
첫 번째 형태에서 postfix-expression은 구조체, 클래스 또는 공용 구조체 형식의 값을 나타내며, name은 지정된 구조체, 공용 구조체 또는 클래스의 멤버 이름을 지정합니다. 연산의 값은 name의 값이며 postfix-expression이 l-value인 경우 l-value입니다.
두 번째 형태에서 postfix-expression은 구조체, 공용 구조체 또는 클래스에 대한 포인터를 나타내며, name은 지정된 구조체, 공용 구조체 또는 클래스의 멤버 이름을 지정합니다. 값은 name의 값이며 l-value입니다. –> 연산자는 포인터를 역참조합니다. 따라서 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;
}