Las funciones miembro (C++)
las clases pueden contener datos y funciones.Estas funciones se denominan “funciones miembro”. Cualquier función no estáticos declarada dentro de una declaración de clase se considera una función miembro y se denomina usando los operadores miembro-selección (. y – >).Al llamar a funciones miembro de otras funciones miembro de la misma clase, el objeto y el operador miembro-selección puede omitir.Por ejemplo:
// 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();
}
Observe que en la función miembro, Show, llamadas a las otras funciones miembro, x y y, se crea sin los operadores miembro-selección.Estas llamadas implícitamente this->x() erróneo y this->y().Sin embargo, en Principal, la función miembro, Show, debería seleccionar mediante el objeto pt y el operador miembro-selección (.).
Las funciones estáticas declaradas dentro de una clase se puede llamar mediante los operadores miembro-selección o especificando el nombre de función completo (nombre de clase incluida.
[!NOTA]
Una función declarada con la palabra clave de friend no se considera un miembro de la clase en la que se declara friend (aunque puede ser un miembro de otra clase).Una declaración de friend controla el acceso que tiene una función de miembro no los datos de la clase.
La declaración de clase siguiente muestra cómo se declaran y se llama a las funciones miembro:
// 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 );
}
En el código anterior, las funciones miembro del objeto ptOrigin siguen el operador miembro-selección (.).Sin embargo, las funciones miembro de objeto indicada por pptCurrent siguen el operador miembro-selección de – > .