Partilhar via


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

Esta seção descreve a inicialização usando as funções de membro especiais. Ela é expandida para as seguintes discussões de inicialização:

  • Inicializando agregações que descreve como inicializar matrizes de tipos sem classe e objetos de tipo de classe simples. Esses tipos de classe simples não podem ter membros particulares ou protegidos e não podem ter classes base.

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

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

  • Objetos de tipos incorporados. 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 em que a classe não tem membros particulares ou protegidos, nenhuma função virtual e nenhuma classe base. Por exemplo:

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

As classes podem especificar uma inicialização mais refinada definindo funções de construtor. (Para obter mais informações sobre como declarar essas funções, consulte Construtores.) Se um objeto for de um tipo de classe que tem um construtor, o objeto deverá ser inicializado ou deverá haver um construtor padrão. Os objetos que não são inicializados especificamente invocam o construtor padrão da classe.

Consulte também

Referência

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