Udostępnij za pośrednictwem


Funkcje składowe (C++)

Klasy może zawierać dane i funkcje.Funkcje te są określane jako "funkcji elementów członkowskich". Wszelkie niestatycznego funkcja zadeklarowana wewnątrz deklaracji klasy jest uważany za funkcji składowej i jest wywoływana przy użyciu operatorów wybranych elementów członkowskich (. and –>).Podczas wywoływania funkcji elementów członkowskich z innego członka funkcje tej samej klasy, można pominąć operator obiektu i wybranych elementów członkowskich.Na przykład:

// 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();
}

Należy zauważyć, że w funkcji składowej Show, wzywa do innych funkcji Członkowskich x i y, są dokonywane bez operatorów wybranych elementów członkowskich.Te wywołania niejawnie oznacza this->x() i this->y().Jednakże, w główne, funkcji składowej Show, musi być zaznaczone, przy użyciu obiektu pt i operator wybranych elementów członkowskich (.).

Statyczne funkcje zadeklarowane wewnątrz klasy mogą być wywoływane za pomocą operatorów wybranych elementów członkowskich lub określając nazwę funkcji w pełni kwalifikowana (łącznie z nazwą klasy).

[!UWAGA]

Funkcja zadeklarowane za pomocą friend słowo kluczowe nie jest uważana za członka klasy, w którym jest on zadeklarowany jako friend (chociaż go może należeć do innej klasy).A friend deklarację kontroluje dostęp, funkcja prawodawstwa wspólnotowego ma dane klasy.

Następującą deklarację klasy pokazuje, jak zadeklarowane i o nazwie funkcji elementów członkowskich:

// 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 );
}

W poprzednim kodzie funkcje składowe obiektu ptOrigin są wywoływane za pomocą operatora wybranych elementów członkowskich (.).Jednakże funkcje składowe obiektu wskazywanej przez pptCurrent są wywoływane za pomocą -> operator wybranych elementów członkowskich.

Zobacz też

Informacje

Klasy, struktury i związki