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.