Sto tentando di inizializzare un array nell'elenco di inizializzazione del mio costruttore, e voglio che l'array abbia la dimensione MAX_SIZE, che è un const statico pubblico nella mia classe Stack. Come posso farlo funzionare? Il compilatore si lamenta, dicendo che hanno i tipi incompatibili nella assegnazione di 'doppio' a 'doppia [0u]'Inizializza array nell'elenco di inizializzazione del costruttore
Ecco il mio codice:
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;
Grazie in anticipo per il vostro aiuto.
A meno che tu non sia completamente masochista: 'static const unsigned max_size = 4; std :: vector array; Stack :: Stack(): array (MAX_SIZE) {} ' –
C'è forse un modo più semplice? cioè senza usare vettori. Come posso ottenere che il programma accetti il mio membro dei dati dell'array con le dimensioni massime MAX_SIZE? – Sean
Mi sarei abituato a usare 'std :: vector'. Uso raramente gli array; Userò un 'std :: vector' come preferenza quasi ogni volta. Il codice @Jesse Good ha dato dovrebbe funzionare pure. –