Usando una matriz estática dentro de la clase

Dentro de Miclase.h

Class Myclass
{
public:
Myclass();
private:
static int Myarray[12];
};

¿Cómo inicializar la matriz estática anterior?

preguntado el 04 de julio de 12 a las 08:07

2 Respuestas

Tu necesitas definir exactamente una vez, en un .cpp archivo:

int MyClass::MyArray[12] = { 0, 1, 2 }; /* Definition and initialisation.
                                           Any elements not explicity
                                           initialised will be 
                                           value-initialised,
                                           0 in the case of int. */

El código publicado es solo un declaración de la matriz.

Respondido 04 Jul 12, 08:07

Ahora MyArray[0] = 0 , MyArray[1] = 1 , MyArray[2] = 2 ... ¿Cuál es el valor que se almacenará en el resto de los lugares? - Semana

@vivek, vea el comentario en la respuesta. - hmjd

@hmjd, el resto de los valores serán 0. - SingerOfTheFall

@SingerOfTheFall, ¡LO SÉ! Está en el comentario del código en mi respuesta. - hmjd

@hmjd, lo siento, no actualicé los comentarios antes de publicar. - SingerOfTheFall

Como dijo Viku: debe definirlo exactamente una vez, en un archivo .cpp:

int MyClass::MyArray[12] = { 0, 1, 2 }; 

y también necesita esto declararlo en su class.h campo privado privado:

static int MyArray[12];

respondido 18 nov., 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.