Fonctions membres (C++)
les classes peuvent contenir des données et des fonctions.Ces fonctions sont connus sous le nom de « fonctions membres. » Toute fonction non statique déclarée à l'intérieur d'une déclaration de classe est considérée comme une fonction membre et est appelée à l'aide de les opérateurs de sélection des membres (. et - >).En appelant les fonctions membres d'autres fonctions membres de la même classe, l'objet et l'opérateur member-selection peuvent être omis.Par exemple :
// 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();
}
Notez que dans la fonction membre, Show, appels aux autres fonctions membres, x et y, sont effectuées sans opérateurs de sélection des membres.Ces appels implicitement this->x() moyenne et this->y().Toutefois, dans principal, la fonction membre, Show, doit être sélectionnée à l'aide de l'objet pt et l'opérateur member-selection (.).
Les fonctions statiques déclarées à l'intérieur d'une classe peuvent être appelées à l'aide de les opérateurs de sélection des membres ou en spécifiant le nom de fonction qualifié complet (nom de classe).
[!REMARQUE]
Une fonction déclarée avec le mot clé d' friend n'est pas considérée comme un membre de la classe dans laquelle il est déclaré friend (bien que ce peut être un membre d'une autre classe).Une déclaration d' friend contrôle l'accès qu'une fonction non - membre doit des données de classes.
La déclaration de classe suivante montre comment les fonctions membres sont déclarées et appelées :
// 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 );
}
Dans le code précédent, les fonctions membre de l'objet ptOrigin sont appelées à l'aide de l'opérateur member-selection (.).Toutefois, les fonctions membres de l'objet sur lequel pointe pptCurrent sont appelées à l'aide de l'opérateur de sélection des membres de - > .