Objetos miembro inicializar

Las clases pueden contener objetos miembro de tipo de clase, pero asegurarse que los requisitos de inicialización para los objetos miembro se cumplan, una de las condiciones siguientes debe ser ajustado:

  • La clase de objeto contenido no requiere ningún constructor.

  • la clase de objeto contenido tiene un constructor predeterminado accesible.

  • Los constructores todos de la clase que contiene explícitamente inicialice el objeto contenido.

El ejemplo siguiente se muestra cómo realizar esa inicialización:

// spec1_initializing_member_objects.cpp
// Declare a class Point.
class Point
{
public:
    Point( int x, int y ) { _x = x; _y = y; }
private:
    int _x, _y;
};

// Declare a rectangle class that contains objects of type Point.
class Rect
{
public:
    Rect( int x1, int y1, int x2, int y2 );
private:
    Point _topleft, _bottomright;
};

//  Define the constructor for class Rect. This constructor
//   explicitly initializes the objects of type Point.
Rect::Rect( int x1, int y1, int x2, int y2 ) :
_topleft( x1, y1 ), _bottomright( x2, y2 )
{
}

int main()
{
}

La clase de Rect , que se muestra en el ejemplo anterior, contiene dos objetos miembro de clase Point.El constructor explícitamente inicializa objetos _topleft y _bottomright.Observe que los dos puntos sigue el paréntesis de cierre de constructor (en la definición).El signo de dos puntos está seguido de los nombres de miembro y los argumentos que inicializar objetos de Pointescrito.

[!NOTA]

El orden en que los inicializadores de miembro se especifican en el constructor no afecta al orden en que crean miembros; construir los miembros en el orden en que se declaran en la clase.

Referencia y los objetos miembro de const se deben inicializar utilizando la sintaxis de inicialización de miembros mostrada en la sección de la gramática de Base y miembros que se inicializan.No hay ninguna otra manera de inicializar estos objetos.

Vea también

Referencia

Base y miembros que se inicializan