Estoy tratando de inicializar una matriz en la lista de inicialización de mi constructor, y quiero que la matriz tenga el tamaño MAX_SIZE, que es una configuración estática pública en mi clase Stack. ¿Cómo puedo hacer que funcione? El compilador se queja, diciendo que tienen tipos incompatibles en la asignación de 'doble' a 'doble [0U]'Initialize array en la lista de inicialización del constructor
Aquí está mi código:
class Stack {
public:
Stack();
static const unsigned MAX_SIZE;
private:
double array[];
unsigned elements;
}; // class Stack
Stack::Stack(): array(array[MAX_SIZE]), elements(0) {}
const unsigned Stack::MAX_SIZE = 4;
Gracias de antemano por su ayuda.
A menos que sea completamente masoquista: 'static const unsigned max_size = 4; std :: vector matriz; Stack :: Stack(): array (MAX_SIZE) {} ' –
¿Hay alguna manera más simple quizás? es decir, sin usar vectores. ¿Cómo puedo hacer que el programa acepte mi miembro de datos de matriz con su tamaño MAX_SIZE? – Sean
Me acostumbraría a usar 'std :: vector'. Raramente utilizo arreglos; Usaré una preferencia 'std :: vector' casi cada vez. El código que Jesse Good ha dado debería funcionar también. –