다음을 통해 공유


멤버 함수 (C++)

클래스는 데이터와 함수를 포함할 수 있습니다.이러한 함수를 "멤버 함수." 라고 비정적 함수 클래스 선언 내에 선언 된 모든 멤버 함수가 간주 됩니다 및 멤버 선택 연산자를 사용 하 여 호출 됩니다 (. and –>).함수는 같은 클래스의 다른 멤버에서 멤버 함수를 호출 하는 경우 개체 및 멤버 선택 연산자를 생략할 수 있습니다.예를 들면 다음과 같습니다.

// member_functions1.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

class Point
{
public:
   short x()
   {
      return _x;
   }
   
   short y()
   {
      return _y;
   }

   void  Show()
   {
      cout << x() << ", " << y() << "\n";
   }
private:
   short _x, _y;
};

int main()
{
   Point pt;
   pt.Show();
}

멤버 함수를 참고 Show, 다른 멤버 함수 호출을 x 및 y, 멤버 선택 연산자 없이 수행 됩니다.이러한 호출 의미는 암시적으로 this->x() 및 this->y().그러나 , 멤버 함수, Show, 개체를 사용 하 여 선택 해야 합니다. pt 및 멤버 선택 연산자 (.).

클래스 내에 선언 된 정적 함수 멤버 선택 연산자를 사용 하 여 호출할 수 있습니다 또는 정규화 된 함수 이름 (클래스 이름 포함)를 지정 하 여.

[!참고]

함수를 사용 하 여 선언에 friend 키워드는 선언 된 클래스의 구성원으로 간주 되지 않습니다 한 friend (다른 클래스의 구성원이 될 수 있음).A friend 선언을 제어는 비멤버 함수는 클래스의 데이터에 액세스 합니다.

다음과 같은 클래스 선언을 멤버 함수 선언 및 호출 방법 보여 줍니다.

// member_functions2.cpp
class Point
{
public:
   unsigned GetX()
   {
      return ptX;
   }
   unsigned GetY()
   {
      return ptY;
   }

   void SetX( unsigned x )
   {
      ptX = x;
   }
   void SetY( unsigned y )
   {
      ptY = y;
   }

private:
    unsigned ptX, ptY;
};

int main()
{
   // Declare a new object of type Point.
   Point ptOrigin;

   // Member function calls use the . member-selection operator.
   ptOrigin.SetX( 0 );
   ptOrigin.SetY( 0 );

   // Declare a pointer to an object of type Point.
   Point *pptCurrent = new Point;
   // Member function calls use the -> member-selection operator.
   pptCurrent->SetX( ptOrigin.GetX() + 10 );
   pptCurrent->SetY( ptOrigin.GetY() + 10 );
}

앞의 코드에서 해당 개체의 멤버 함수 ptOrigin 멤버 선택 연산자를 사용 하 여 호출 됩니다 (.).그러나 멤버 함수 개체 가리키는 하 여 pptCurrent 사용 하 여 호출 되는 – > 멤버 선택 연산자입니다.

참고 항목

참조

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