다음을 통해 공유


멤버 액세스 연산자: . 및 ->

postfix-expression . name 
postfix-expression –> name

설명

멤버 액세스 연산자 . 및 **->**는 구조체, 공용 구조체 및 클래스의 멤버를 참조하는 데 사용됩니다. 멤버 액세스 식에는 선택한 멤버의 값과 형식이 있습니다.

다음 두 가지 형태의 멤버 액세스 식이 있습니다.

  1. 첫 번째 형태에서 postfix-expression은 구조체, 클래스 또는 공용 구조체 형식의 값을 나타내며, name은 지정된 구조체, 공용 구조체 또는 클래스의 멤버 이름을 지정합니다. 연산의 값은 name의 값이며 postfix-expression이 l-value인 경우 l-value입니다.

  2. 두 번째 형태에서 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;
}
  

참고 항목

참조

후위 식

C++ 연산자

C++ 연산자, 우선 순위 및 결합성

클래스, 구조체 및 공용 구조체

개념

구조체 및 공용 구조체 멤버