Condividi tramite


Funzioni membro (C++)

Le classi possono contenere dati e funzioni.Queste funzioni vengono definiti “funzioni membro.„ Qualsiasi dichiarazione interna della classe dichiarata funzione non static è considerata una funzione membro e viene chiamata utilizzando gli operatori di selezione dei membri (. e - >).Nel chiamare le funzioni membro da altre funzioni membro della stessa classe, l'oggetto e l'operatore di selezione dei membri possono essere omessi.Di seguito è riportato un esempio:

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

Si noti che nella funzione membro, Show, chiamate alle altre funzioni membro, x e y, vengono eseguiti senza operatori di selezione dei membri.media di queste chiamate in modo implicito this->x() e this->y().Tuttavia, in principale, la funzione membro, Show, è necessario selezionare prima dell'utilizzo di l pt e l'operatore di selezione dei membri (.).

La classe interna dichiarata funzioni statiche può essere chiamato utilizzando gli operatori di selezione dei membri o specificando il nome della funzione completo (nome della classe incluso).

[!NOTA]

Una funzione dichiarata tramite friend la parola chiave non viene considerata un membro della classe in cui è dichiarata friend sebbene possa essere un membro di un'altra classe).In friend la dichiarazione consente di controllare l'accesso a una funzione non membro deve archiviare i dati.

Illustrato nella dichiarazione di classe come le funzioni membro e sono dichiarate e chiamate:

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

Nel codice precedente, le funzioni membro dell'oggetto ptOrigin vengono chiamati utilizzando l'operatore di selezione dei membri (.).Tuttavia, le funzioni membro dell'oggetto a cui fa riferimento da pptCurrent vengono chiamati utilizzando il - > operatore di selezione dei membri.

Vedere anche

Riferimenti

Classi, strutture e unioni