Compartilhar via


Funções de membro (C++)

Classes podem conter dados e funções.Essas funções são conhecidas como "funções de membro". É considerada uma função de membro de qualquer função não estática declarada dentro de uma declaração de classe e é chamada usando os operadores de seleção de membro (. and –>).Ao chamar funções de membro de outro membro funções da mesma classe, o operador de objeto e seleção de membro pode ser omitido.Por exemplo:

// 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 a função de membro, Show, chamadas para as outras funções de membro, x e y, é feita sem operadores de seleção de membro.Essas chamadas implicitamente significam this->x() e this->y().No entanto, em principal, a função de membro, Show, deve ser selecionado usando o objeto pt e o operador de seleção de membro (.).

Funções estáticas declaradas dentro de uma classe podem ser chamadas usando os operadores de seleção de membro ou especificando o nome da função totalmente qualificado (incluindo o nome da classe).

ObservaçãoObservação

Uma função declarada usando o friend palavra-chave não é considerado um membro da classe na qual é declarada uma friend (embora pode ser um membro de outra classe).A friend declaração controla o acesso a uma função não-membro tem dados de classe.

A declaração de classe a seguir mostra como funções de membro são declaradas e chamadas:

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

No código anterior, as funções de membro do objeto ptOrigin são chamados usando o operador de seleção de membro (.).No entanto, as funções de membro do objeto apontado pelo pptCurrent são chamadas usando o – > o operador de seleção de membro.

Consulte também

Referência

Classes, estruturas e uniões