Compartilhar via


Inicialização usando funções de membro especial

Esta seção descreve o uso de funções de membro especial de inicialização.Ele se expande em discussões a seguir de inicialização:

  • Inicializando agregados que descreve como inicializar objetos dos tipos de classe simples e matrizes de tipos de nonclass.Esses tipos de classe simples não podem ter membros de particulares ou protegidos, e eles não podem ter classes base.

  • Construtores, que explica como inicializar objetos do tipo de classe usando funções de construtor especial.

O método padrão de inicialização é realizar uma cópia bit a bit do inicializador para o objeto a ser inicializado.Essa técnica é aplicável somente a:

  • Objetos dos tipos internos.Por exemplo:

    int i = 100;
    
  • Ponteiros.Por exemplo:

    int i;
    int *pi = &i;
    
  • Referências.Por exemplo:

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • Objetos do tipo de classe, onde a classe tem nenhum membro particular ou protegido, sem funções virtuais e não há classes base.Por exemplo:

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

Classes podem especificar mais refinada de inicialização por meio da definição de funções do construtor.(Para obter mais informações sobre a declaração de tais funções, consulte construtores.) Se um objeto for de um tipo de classe que possui um construtor, o objeto deve ser inicializado ou deve haver um construtor padrão.Objetos que não são inicializados especificamente chamam o construtor da classe padrão.

Consulte também

Referência

Funções de membro especial (C++)