Especificadores de acesso
Em declarações de classe, os membros podem ter especificadores de acesso.
Gramática
access-specifier : member-listopt
access-specifier: um de
privadopúblico
protected
O access-specifier determina o acesso aos nomes que o seguem, até o próximo access-specifier ou o final da declaração de classe. A imagem a seguir ilustra esse conceito.
Controle de acesso em classes
Embora apenas dois especificadores de acesso sejam mostrados na figura, não há limite para o número de especificadores de acesso em uma determinada declaração de classe. Por exemplo, a classe Point na figura poderia ser facilmente declarada usando vários especificadores de acesso, como se segue:
// access_specifiers1.cpp
class Point
{
public: // Declare public constructor.
Point( int, int );
private: // Declare private state variable.
int _x;
public: // Declare public constructor.
Point();
public: // Declare public accessor.
int &x( int );
private: // Declare private state variable.
int _y;
public: // Declare public accessor.
int &y( int );
};
int main()
{
}
Não há uma ordem específica obrigatória para o acesso de membros, conforme mostrado no exemplo anterior. A alocação de armazenamento para objetos de tipos de classe depende da implementação, mas é garantido que os membros receberão endereços de memória sucessivamente mais altos entre especificadores de acesso.