Compartir a través de


Inicializar utilizando Funciones miembro especiales

Esta sección describe la inicialización mediante el uso de funciones miembro especiales. Amplía los siguientes análisis de inicialización:

  • Inicialización de agregados que describe cómo se inicializan matrices de tipos que no son de clase y objetos de tipos de clase simples. Estos tipos de clase simples no pueden tener miembros privados o protegidos, y no pueden tener clases base.

  • Constructores, que explica cómo se inicializan objetos de tipo de clase mediante el uso de funciones de constructor especiales.

El método de inicialización predeterminado consiste en realizar una copia bit por bit del inicializador en el objeto que se va a inicializar. Esta técnica solo es aplicable a:

  • Objetos de tipos integrados. Por ejemplo:

    int i = 100;
    
  • Punteros. Por ejemplo:

    int i;
    int *pi = &i;
    
  • Referencias. Por ejemplo:

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • Objetos de tipo de clase, en que la clase no tiene miembros privados o protegidos, ni funciones virtuales, ni clases base. Por ejemplo:

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

Las clases pueden especificar una inicialización más refinada mediante la definición de funciones constructoras. (Para obtener más información sobre la declaración de dichas funciones, vea Constructores). Si un objeto es de un tipo de clase que tiene un constructor, el objeto se debe inicializar, o debe haber un constructor predeterminado. Los objetos que no se inicializan específicamente invocan el constructor predeterminado de la clase.

Vea también

Referencia

Funciones miembro especiales (C++)