Compartilhar via


Membros de classe

Classes podem ter esses tipos de membros:

Comentários

A lista de membros de uma classe pode ser dividida em private, protected e pública seções usando palavras-chave conhecidas como especificadores de acesso.Dois-pontos : deve seguir o especificador de acesso.Estas seções não precisam ser contíguas, ou seja, qualquer uma dessas palavras-chave podem aparecer várias vezes na lista de membros.A palavra-chave designa o acesso de todos os membros até o próximo especificador de acesso ou a chave de fechamento.

Declarações de membros na lista de membros são separadas por ponto e vírgula ;.Consulte sintaxe de declaração de membro da classe.

A finalidade da lista de membros é:

  • Declare o conjunto completo de membros para uma determinada classe.

  • Especifique o acesso (público, particular ou protegido) associado com vários membros de classe.

Na declaração de uma lista de membros, você pode declarar membros somente uma vez; redeclaração de membros produz uma mensagem de erro.Como uma lista de membros é um conjunto completo de membros, você não pode adicionar membros a uma determinada classe com declarações de classe subseqüentes.

Declaradores de membro não podem conter inicializadores.Fornecer um inicializador produz uma mensagem de erro, conforme ilustrado no código a seguir:

// class_members1.cpp
// C2864 expected
class CantInit
{
public:
    long l = 7;       // Error: attempt to initialize
                      //  class member.
    static int i = 9; // Error: must be defined and initialized
                      // outside of class declaration.
};
int main()
{
}

Como uma instância separada dos dados de membro não estático é criada para cada objeto de um tipo de determinada classe, a maneira correta de inicializar dados do membro é usar o construtor da classe.(Construtores são abordadas em construtores,.)

Há apenas uma cópia compartilhada de membros de dados estáticos para todos os objetos de um tipo de determinada classe.Membros de dados estáticos devem ser definidos e podem ser inicializados no escopo do arquivo.(Para obter mais informações sobre membros de dados estáticos, consulte Membros de dados estáticos.) O exemplo a seguir mostra como executar essas inicializações:

// class_members2.cpp
class CanInit
{
public:
    CanInit() { l = 7; } // Initializes l when new objects of type 
                         //  CanInit are created.
    long       l;
    static int i;
    static int j;
};

// i is defined at file scope and initialized to 15.
// The initializer is evaluated in the scope of CanInit.
int CanInit::i = 15;                                                       

// The right side of the initializer is in the scope 
// of the object being initialized
int CanInit::j = i;  

int main()
{
}
ObservaçãoObservação

O nome da classe, CanInit, deve preceder i para especificar que o i que está sendo definido é um membro da classe CanInit.

Específicos do Microsoft

Microsoft C++ permite que os membros de dados de um enum estáticas e const integral e const sejam inicializados na definição de classe.Consulte As extensões do Microsoft C e C++.

Consulte também

Referência

Classes, estruturas e uniões