Členské funkce (C++)
Třídy mohou obsahovat data a funkce.Tyto funkce jsou označovány jako "členské funkce." Všechny nestatické funkce deklarované uvnitř deklarace třídy jsou považovány za členské funkce a jsou volány pomocí operátorů výběr členů (. a –>).Při volání členských funkcí v jiných členských funkcí stejné třídy, lze vynechat objekt a operátor výběru členů.Příklad:
// 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();
}
Všimněte si, že členská funkce Show provádí volání na jiné členské funkce, x a y jsou vytvořeny bez použití operátorů výběru členů.Tato volání implicitně představují this->x() a this->y().Ovšem v metodě main musí být členská funkce Show vybrána použitím objektu pt a operátoru výběru členů (.).
Statické funkce deklarované uvnitř třídy lze volat pomocí operátorů výběru členů nebo zadáním funkce plně kvalifikovaného názvu (včetně názvu třídy).
[!POZNÁMKA]
Funkce deklarovaná pomocí klíčového slova friend není považována za člena třídy, ve kterém je deklarována jako friend (i když může být členem jiné třídy).Deklarace friend řídí přístup, který má nečlenská funkce k datům třídy.
Následující deklarace třídy ukazuje, jak deklarovat a volat členské funkce:
// 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 );
}
V předchozím kódu jsou členské funkce objektu ptOrigin volány pomocí operátoru výběru členů (.).Členské funkce objektu, na který je odkazováno skrze pptCurrent jsou však volány pomocí operátoru výběrů členů –>.